我需要在我的数据集中获得多个变量对的绝对频率,因此我使用此代码来"循环" xtabs
命令:
apply(table[,2:17], 2, function(x) xtabs(~tablel$variable+x))
它工作正常并通过变量给出了绝对频率。但是,我现在需要从行中得到相对频率,我无法弄清楚如何。
我能以某种方式在循环中包含相对频率计算吗?或者我是否必须为此创建一个新的数据集(以及如何?我似乎无法从R中获得绝对频率)。
这是我用代码获得的变量频率之一的示例。
$SEM
x
MN sem1 sem2 sem3
N1 227 130 18
N10 0 2 7
N11 9 7 5
N12 29 21 1
N2 23 14 2
N3 19 7 4
N4 12 17 0
N5 18 36 3
N6 22 13 7
N8 1 39 0
N9 0 2 5
答案 0 :(得分:1)
我们可以通过列表应用一个功能。假设包含16个数据帧的列表被称为lst
,那么,
lapply(lst, function(i) t(apply(i[,-1], 1, function(j) j/sum(j))))