我有一个简单的矩阵并应用函数来计算频率:
testM <- matrix(c(rep(1,3), rep(0,3)), ncol = 2, byrow = T)
> testM
[,1] [,2]
[1,] 1 1
[2,] 1 0
[3,] 0 0
r <- apply(testM, 1, function(x) { table(x) })
申请后我有一个表格列表
x Frq x.1 F.1 x.2 F.2
1 2 0 1 0 2
1 2 1 1 0 2
以一对列读取此结果。正如你所看到的,table()函数没有“猜测”我只计算0和1,并将另一个1和频率2(或另一个0和frq 2)放在我预期的位置
x Frq x.1 F.1 x.2 F.2
1 2 0 1 1 0
0 0 1 1 0 2
任何想法或更好的解决方案?
答案 0 :(得分:1)
我们需要将每个vector
转换为factor
并指定levels
apply(testM, 1, function(x) table(factor(x, levels=0:1)) )