【问题标题】:tally number occurances in one data.frame against a number vector R一个数据帧中针对数字向量 R 的计数出现次数
【发布时间】:2014-06-23 00:26:10
【问题描述】:

我有一个数据框,其中每个观察包含一行,并且有一个字段指示该观察是在哪个样本中进行的。样本从 1 到 20。一些样本没有,而其他样本有多个观察值。我的目标是计算每个样本的观察结果——我使用 plyr 和 count 函数来做到这一点。但是,没有观测值的样本不包含在输出中(因为它们在观测数据框中找不到)。我的想法是统计 obs 中出现的次数。 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) 

这些是带有观察值的样本 ID。样品从 1:20 开始

obs=sample(seq(5, 50, by=3),size=17,replace=TRUE)  
df = data.frame(id,obs)   
out<-count(df$id) 

out 仅包括带有观察值的样本。样本 2、3、7、9、11、12、13、14、16、17、19、20 的 obs 均为 0。我希望将这些包含在输出中。

【问题讨论】:

    标签: r


    【解决方案1】:

    一种选择是让样本 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 
    

    factor 中的 levels 参数表示所有级别,即使是数据中未找到的级别。我假设您也希望包含 id 21

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-07
      • 2020-03-24
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多