我有一个如下所示的 data.frames 列表:
df=data.frame(
data_id=rep(LETTERS[1:10],each=1),
data_value=c(1,2,2,3,3,2,3,1,1,3))
df2=data.frame(
data_id=rep(LETTERS[1:10],each=1),
data_value=c(2,1,3,1,1,1,2,1,2,1))
df3=data.frame(
data_id=rep(LETTERS[1:10],each=1),
data_value=c(2,2,3,3,1,2,2,1,2,3))
df.list <- list(df, df2, df3)
单个 data.frame 如下所示:
data_id data_value
1 A 1
2 B 2
3 C 2
4 D 3
5 E 3
6 F 2
7 G 3
8 H 1
9 I 1
10 J 3
我想计算每个唯一值在 data_value 中出现的频率。我可以做这个:
for(i in 1:length(df.list)){
daply(df.list[[i]], .(df.list[[i]]$data_value), nrow) -> freq
}
这给了我频率计数(在这种情况下只是最后一个,对于 df3):
1 2 3
2 5 3
我的实际数据集要大得多,所以我不能在这里发布。但是,它具有完全相同的结构。问题是,当我尝试获取实际数据集的频率计数时,我收到以下错误消息:
Error in dim(out_array) <- out_dim : dims [product 0] do not match the length of object [1]
谁能告诉我我需要从哪里开始解决这个问题?我不明白 'dim()' 的来源和作用。非常感谢。