计算数据帧中前两列的位数

IAMTubby

说,我有一个如下的数据框,有三列。我想创建第四列,其值是前两列的总和

迭代版本

col1 = c(1,1,1,0,0)
col2 = c(1,0,0,0,1)
col3 = c(0,1,1,1,0)

df = data.frame(col1,col2,col3)
df$col4 = 0;

for(i in 1:nrow(df))
{
    print(i)
    countone = 0
    for(j in 1:2)
    {
        if(df[i,j] == 1)
        {
            countone = countone + 1;
        }
    }   

    df[i,4] = countone
}

输入

  col1 col2 col3
1    1    1    0
2    1    0    1
3    1    0    1
4    0    0    1
5    0    1    0

预期产量

> df
  col1 col2 col3 col4
1    1    1    0    2
2    1    0    1    1
3    1    0    1    1
4    0    0    1    0
5    0    1    0    1
scii
df$col4 <- rowSums(df[,1:2])

这就是所谓的行总和。并且不需要初始化行:df$col4 = 0

(此代码的工作,因为我们得到的那些条目只能是0或1东西在更一般的代码工作将是rowSums(df[,1:2]==1),与... na.rm = T如果需要的话。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章