将列中的值替换为其他两列值

时间:2016-08-12 09:33:07

标签: r data-processing

Data1
  A     B      C 
  a     1     a,b
  b     6     c,b
  c     5     b,c
  d     3     a,d

所以现在我想制作新专栏" D"

例如,它根据A列和B列值替换值。

  C      D
 a,b    1,6
 c,b    5,6
 b,c    6,5
 a,d    1,3

1 个答案:

答案 0 :(得分:2)

我们可以使用offset()。通过chartr old列为new创建chartrpaste个参数,即' A'和' B'并使用key/value作为' C'用于替换' C'中的子字符串的列匹配' A'对于' B'

x

更新

如果' x'来自不同的数据集

Data1$D <- with(Data1, chartr(paste(A,collapse=""), paste(B,collapse=""), C))
Data1$D
#[1] "1,6" "5,6" "6,5" "1,3"

数据

with(Data1, chartr(paste(A,collapse=""), paste(B,collapse=""), Data2$Col1))
#[1] "1,5" "6,3" "1,1" "1,5"