在第一个和最后一个之间提取字符串

Jam*_*ite 1 regex string r character gsub

虽然我已经搜索了stackoverflow寻找各种gsub的答案,但我找不到要应用于我的数据的代码.我想创建一个新列,提取第一个和最后一个下划线之间的所有字母.

Test <- as.data.frame(c("A_YES_X","A_Yes_YES_X"))
colnames(Test)[1] <- "test"
Run Code Online (Sandbox Code Playgroud)

所以在上面的例子中,这将是我需要的输出.

Test$Output <- c("YES","Yes_YES")
Run Code Online (Sandbox Code Playgroud)

先感谢您

Lam*_*mia 5

您可以在第一个_(包括它)使用之前找到所有字符串^[^_]*_的部分,并使用最后一个_(包括它)之后的部分_[^_]*$.你可以删除它们gsub:

gsub("_[^_]*$|^[^_]*_","",test,perl=T)
[1] "YES"     "Yes_YES"
Run Code Online (Sandbox Code Playgroud)