根据与第四列匹配的第三列用另一列替换一列中的值 [英] Replacing values in one column with another based on a 3rd column matching a 4th

查看:41
本文介绍了根据与第四列匹配的第三列用另一列替换一列中的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用以下示例:

Original     Modified     New_Orig     New
1            2            1            0
2            4            1            0
3            6            4            0
4            8            5            0
5            10           5            0
6            12           5            0
7            14           5            0
8            16           5            0
9            18           9            0
10           20           10           0

如果 New_OrigOriginal 中的任何值匹配,我想用 Modified 中的值替换 New 中的值.

I want to replace values in New with values from Modified if New_Orig matches with any value in Original.

理想情况下New看起来像这样:

Ideally New will look like this:

New
2  
2
8
10
10
10
10
10
18
20  

非常感谢任何帮助.

亲切的问候,

推荐答案

这里创建了一个新列New:

within(dat, New <- Modified*(New_Orig == Original))

   Original Modified New_Orig New
1         1        2        1   2
2         2        4        1   0
3         3        6        4   0
4         4        8        5   0
5         5       10        5  10
6         6       12        5   0
7         7       14        5   0
8         8       16        5   0
9         9       18        9  18
10       10       20       10  20

更新

匹配值并从Modified中选择合适的值:

Match values and choose appropriate value from Modified:

within(dat, New <- Modified[match(New_Orig, Original)])

   Original Modified New_Orig New
1         1        2        1   2
2         2        4        1   2
3         3        6        4   8
4         4        8        5  10
5         5       10        5  10
6         6       12        5  10
7         7       14        5  10
8         8       16        5  10
9         9       18        9  18
10       10       20       10  20

这篇关于根据与第四列匹配的第三列用另一列替换一列中的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆