我有一个数据框架,其中包括每一次观察的一行,并有一个字段指示在哪个样本中进行了这一观察。样本范围为1~ 20,有的无观测,有的有多个观测。我的目标是计算每个样本的观测值--我使用plyr和计数函数进行了计数。但是,没有观测的样本不包括在输出中(因为它们没有在观测数据框架中找到)。我的想法是记录下发生在乳房上的次数。data.frame对数字向量R (seq(1:20) )。
我得到的是:
library(plyr)
id= c(1,1,1,4,4,5,6,6,8,8,10,15,15,17,18,21,21) 这些是带有观察的样本ids。样品从1:20开始。
obs=sample(seq(5, 50, by=3),size=17,replace=TRUE)
df = data.frame(id,obs)
out<-count(df$id) 只包括有观测结果的样本。样本2,3,7,9,11,12,13,14,16,17,19,20均为0。我希望在输出中包括这些内容。
发布于 2014-05-06 12:07:58
一种选择是使示例id成为一个因子,然后使用table()获取计数,如下所示:
id= c(1,1,1,4,4,5,6,6,8,8,10,15,15,17,18,21,21)
obs=sample(seq(5, 50, by=3),size=17,replace=TRUE)
df = data.frame(id,obs)
df$id<-factor(df$id, levels=c(1:21))
out<-table(df$id)
out
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
3 0 0 2 1 2 0 2 0 1 0 0 0 0 2 0 1 1 0 0 2 levels参数在factor中指示所有级别,甚至数据中找不到的级别。我想你也想要身份证21
https://stackoverflow.com/questions/23493875
复制相似问题