在R中查找数组中数字的频率

时间:2015-01-30 10:43:29

标签: r frequency

我需要找到0:8的数字频率。在mxn阶的矩阵A的每一列中。

我该怎么做?

提前致谢

1 个答案:

答案 0 :(得分:2)

您可以applyMARGIN=2一起使用循环列,对0:8(x %in% 0:8)元素进行子集化,使用{{1转换为factor指定为levels并使用0:8来获取元素的频率。

table

或另一种选择是apply(A, 2, function(x) table(factor(x[x %in% 0:8], levels=0:8))) 矩阵并使用melt转换为data.table,从"值&#转换为子集0:8(setDT) 34;设置"值"后的列列为键(J(0:8)),分组为" Var2",更改"值"列到"因子"使用setkey

获取频率
table

数据

library(data.table)
setkey(setDT(melt(A)), value)[J(0:8), 
      as.list(table(factor(value, levels=0:8))), by= Var2]