我有一个这样的数据框,我想创建一个新列,如果存在的话,我只从其他两列中收集符号。
V1 V2
-------------------------------------
SYMBOL=GABRD SYMBOL_SOURCE=HGNC
FLAGS=cds_end_NF SYMBOL=GABRD
SYMBOL=MASP2 SYMBOL_SOURCE=HGNC
FLAGS=cds_start_NF SYMBOL=GABRD
SYMBOL=GABRD SYMBOL_SOURCE=HGNC
FLAGS=cds_start_NF SYMBOL=GABRD
因此结果将包含在一个新列中,只有基于模式“SYMBOL=”的符号
V3
-----
GABRD
GABRD
MASP2
GABRD
GABRD
GABRD
4条答案
按热度按时间zu0ti5jz1#
下面是一个使用
dplyr
的方法。我们mutate()
across()
V1
和V2
来查找以SYMBOL=
开始的行,然后将coalesce()
放入新的列。注意:如果有两行都以
"SYMBOL="
开始,那么coalesce()
将返回第一行不是NA
(即NA
)。V1
)。zqdjd7g92#
测试数据:
碱R溶液:
这里:
编辑:假设:- v1和v2是df中的前两列。
6ojccjat3#
你可以试试这个:
使用的数据:
vvppvyoh4#
另一个简单而简短的基础R解决方案: