在R中对特定值的行进行求和

时间:2017-05-02 16:27:03

标签: r statistics sum

如果我有那个矩阵或表格:

    Version         Formalite      Locuteurs Realisation 
372    VF            I                Ned      1   
373    VF            I                Ned      1   
433    VF            I                Ned      0   
434    VQ            I                Ned      1   

我想总结Realisation等于1且版本为VF的行数,并将结果放在DAF[1]中。

我尝试了这个,但它不起作用。我在DAF[1]中只有NaN值:

DAF[i] = sum(tmp$Version=="VF"&tmp$Realisation == 1)

3 个答案:

答案 0 :(得分:1)

首先,您需要获取条件为真的行:

which( (tmp$Version=="VF") & (tmp$Realisation == 1) )

这将为您提供行号。

现在,如果要计算行数,则需要此输出的长度,因此:

DAF[i] <- length( which( (tmp$Version=="VF") & (tmp$Realisation == 1) ))

答案 1 :(得分:0)

试试这个:

nrow(tmp[tmp$Version=="VF" & tmp$Realisation == 1,])

答案 2 :(得分:0)

使用data.table将数据转换为数据表。之前安装包。 我有DT - 数据表

  1. 应用以下命令:
  2. DT [(V4 == 1&amp; V2 ==“VF”),.(N = .N)]

    1. 您也可以使用dplyr包来执行此操作。在执行以下命令之前安装dplyr软件包。
    2. 我有DT - 数据框

      DT%&gt;%过滤器(V4 == 1&amp; V2 ==“VF”)%&gt;%标签() 要么 DT%&gt;%过滤器(V4 == 1&amp; V2 ==“VF”)%&gt;%count()

      1. 您也可以使用基础R
      2. 来完成

        nrow(子集(DT,V4 == 1&amp; V2 ==“VF))