如何将R语言中freq_of_freq频数表拆分为两个数值列表?
解决方法
你遇到的问题是因为freq_of_freq是一维的table对象,不是二维的矩阵或数据框,所以不能用[1, ]这种二维索引来提取。正确的做法是分别提取它的名称(对应x)和数值(对应y):
完整代码示例
numbers <- c(1,2,3,4,1,2,3,1,2,3,1,2,3,4,2,3,5,1,2,3,4) freq_of_freq <- table(table(numbers)) # 提取x:将table的标签转为数值型向量 x <- as.numeric(names(freq_of_freq)) # 提取y:将table的频数数值转为数值型向量 y <- as.numeric(freq_of_freq) # 验证结果 x # [1] 1 3 5 6 y # [1] 1 1 1 2
关键说明
names(freq_of_freq)会返回table的标签(即你需要的1、3、5、6),默认是字符型,用as.numeric()可转为数值格式。- 直接对
freq_of_freq调用as.numeric(),会提取table中存储的频数数值(即对应y的1、1、1、2)。
内容的提问来源于stack exchange,提问作者Shaun
相关产品推荐
相关产品推荐

