我需要找到0:8的数字频率。在mxn阶的矩阵A的每一列中。
我该怎么做?
提前致谢
答案 0 :(得分:2)
您可以apply
与MARGIN=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]