【发布时间】:2018-10-12 16:15:23
【问题描述】:
用一个简单的向量比如
x <- sample(letters[1:3], size=20, replace=T)
我会用类似的东西提取最常见的字母
y <- table(x)
print(names(y)[y==max(y)])
"b"
但是,在多维数据帧上使用相同的技术是行不通的:
set.seed(5)
x <- data.frame(c1=sample(letters[1:3], size=30, replace=T),
c2=sample(letters[4:5], size=30, replace=T),
c3=sample(letters[6:10], size=30, replace=T))
y <- table(x)
print(names(y)[y==max(y)])
NULL
如何提取列联表中值最高的 c1、c2 和 c3 的级别?
我知道我可以将表格转换为数据框并找到 Freq 列最高的行,但考虑到我的数据集中的维度和级别数,转换为数据框不适合我的 RAM 内存。
编辑:所以我在第二种情况下的预期输出将是c, d, j,如:
z <- data.frame(y)
z[z$Freq==max(z$Freq), 1:3]
c1 c2 c3
27 c d j
但请注意,由于 RAM 问题,我无法对我的数据使用 data.frame 调用。
【问题讨论】:
标签: r contingency