如何使用R在数据框中second pattern
出现之前删除所有内容?
我用过:
for (i in 1:length(df1)){
df1[, i]<- gsub(".*_", "",df1[, i])
}
但是我想有更好的方法将其应用于所有数据框?
以下是数据框中一个值的示例:
name_000004_A_B_C
name_00003_C_D
并获得
A_B_C
C_D
感谢您的帮助。
答案 0 :(得分:2)
x <- c("name_000004_A_B_C", "name_00003_C_D")
gsub("(name_[0-9]*_)(.*)", "\\2", x)
##[1] "A_B_C" "C_D"
更笼统:
gsub("([a-z0-9]*_[a-z0-9]*_)(.*)", "\\2", x)
#[1] "A_B_C" "C_D"
全局替换考虑了两个匹配的组模式,第一个是模式(name_[0-9]*_)
,第二个是后面的模式。保留第二个匹配组。希望这个帮助!