我有一个数据框,包括如下三列。我需要根据以下条件添加新列:如果在var_field
中,$
后面的字符串等于text
中的字符串,则将var
中的相应值放入名为new_col
的新列中。当text
等于NA时,new_col
也应该保持NA。我真的很感激你的建议。
| var|正文|无功场|
| - -----|- -----|- -----|
| 一个|快乐|一元兴奋|
| B|伤心|B愤怒|
| C类|生气|C$sad|
| D级|受激|D$happy|
| E级|不适用|E$紧张|
| F型|不适用|F$蓝色|
| G级|不适用|G$寂寞|
预期的新列应类似于列“new_col”。
| var|正文|无功场|新颜色|
| - -----|- -----|- -----|- -----|
| 一个|快乐|一元兴奋|D级|
| B|伤心|B愤怒|C类|
| C类|生气|C$sad| B|
| D级|受激|D$happy|一个|
| E级|不适用|E$紧张|不适用|
| F型|不适用|F$蓝色|不适用|
| G级|不适用|G$寂寞|不适用|
4条答案
按热度按时间7d7tgy0s1#
对于基数R中的第一个(!)匹配:
创建于2023-06-08使用reprex v2.0.2
fivyi3re2#
另一种方法,使用各种
tidyverse
函数。设置测试数据:
创建
text
的引用,返回var
然后创建新列
给予
编辑:这假设
text
下的非NA选项是唯一的,根据OP这是不正确的。w8biq8rn3#
试试这个:
数据
kqlmhetl4#
下面是另一种方法:
输出: