逗号之间的 Grepl 值并附加为 R 中的新列

问题描述 投票:0回答:1

我有以下数据框:

df=read.table(text="A     
hwqnewqn,ENS.1kmsdf,jmewhqjwjenj
jjqweq3w,eqwejnqwe,ENS.gkhkgfdlsl.jkmwejre
ENSAAAAAAAAAAAA,bbbbbbbb,cccccccc", header=TRUE)

假设我需要一个新的 B 列,其中只有逗号之间的字符串,以某种方式与 ENS 匹配

所以最终结果应该是:

df=read.table(text="B     
ENS.1kmsdf
ENS.gkhkgfdlsl.jkmwejre
ENSAAAAAAAAAAAA", header=TRUE)   

有什么办法吗?

r grepl
1个回答
0
投票

在基本 R 中,您可以将

vapply
strsplit
一起使用,以使用
grepl
测试“ENS”:

df$B <- vapply(strsplit(df$A, ","), \(x) x[grepl("ENS", x)], as.character(1L))

#                                            A                       B
# 1           hwqnewqn,ENS.1kmsdf,jmewhqjwjenj              ENS.1kmsdf
# 2 jjqweq3w,eqwejnqwe,ENS.gkhkgfdlsl.jkmwejre ENS.gkhkgfdlsl.jkmwejre
# 3          ENSAAAAAAAAAAAA,bbbbbbbb,cccccccc         ENSAAAAAAAAAAAA
© www.soinside.com 2019 - 2024. All rights reserved.