通过比较2个现有列然后删除后者,在R中的数据框中创建新列

Shi*_*ion 2 r matrix dataframe

我还有一个问题,我过去几个小时一直试图解决这个问题,但没有成功.它涉及R中的一些数据集操作.想象一下,我有以下样本数据集:

a,b,v,r
1,3,1,0
2,5,1,1
3,6,0,1
1,5,1,0
2,4,1,1
3,6,0,1
Run Code Online (Sandbox Code Playgroud)

我需要通过以下规则比较列[v,r]的值来创建第三列(比如m).如果v = 1,则r = 0,则m = 0.如果v = 1,r = 1,则m = 1且如果v = 0,则r = 1,则m = 2.[v,r]永远不能取值(0,0).

我想知道如何创建第三列,并在一行中删除列v,r.谢谢 !

Aru*_*run 5

使用data.table(1.8.8):

DT <- data.table(DF)
DT[, `:=`(m = (!v) * 1 + r, v = NULL, r=NULL)]
#    a b m
# 1: 1 3 0
# 2: 2 5 1
# 3: 3 6 2
# 4: 1 5 0
# 5: 2 4 1
# 6: 3 6 2
Run Code Online (Sandbox Code Playgroud)

  • 非常好的`(!v)*1 + r`! (2认同)