取R中两列的差异,得到新的第三列

时间:2016-06-22 21:22:40

标签: r dataframe multiple-columns

到目前为止,我有一个如下所示的数据框:

Account     Total     Mastered     Not_Mastered
1           1         NA           NA
2           12        2            10    
3           4         NA           NA
4           51        50           1

我的代码是: Table$not_mastered = (Table$total - Table$mastered)

我的目标是减去掌握的'来自' total'的列列导致第三列' not_mastered'如果掌握了'列然后我希望新列具有与' total'相同的值。柱。如下所示。

Account     Total     Mastered     Not_Mastered
1           1         NA           1
2           12        2            10    
3           4         NA           4
4           51        50           1        

如何跳过主控列中的NA值并重写总列中的值?

2 个答案:

答案 0 :(得分:0)

根据您使用的软件类型,您应该能够通过简单的if循环捕获这些软件。

for index=1: (number of rows of data) % looks at each row, one at a time
     if Mastered(index)==NA  % if the value is the Mastered column is NA
          NotMastered(index)=Total(index);
     else
          NotMastered(index)=Total(index)-Mastered(index);
     end
end

答案 1 :(得分:0)

我们可以使用replace将NA值更改为0,然后执行差异

with(df1, Total - replace(Mastered, is.na(Mastered), 0))
#[1]  1 10  4  1