我想自动删除字符串的常量(共享)部分并保留变量部分。 例如我有一列包含以下内容:
D20181116_Basel-Take1_digital
D20181116_Basel-Take2_digital
D20181116_Basel-Take3_digital
D20181116_Basel-Take4_digital
D20181116_Basel-Take5_digital
D20181116_Basel-Take5a_digital
我如何自动获取任何类似的列(此处删除:“ D20181116_Basel-Take”和“ _digital”)。但是代码应该是找到常量部分本身并删除它们。
1
2
3
4
5
5a
我希望这很清楚。非常感谢。
答案 0 :(得分:0)
您可以使用正则表达式进行操作:它将删除“ Take”之前和下划线字符之后的所有内容:
vec<- c("D20181116_Basel-Take1_digital",
"D20181116_Basel-Take2_digital",
"D20181116_Basel-Take3_digital",
"D20181116_Basel-Take4_digital",
"D20181116_Basel-Take5_digital",
"D20181116_Basel-Take5a_digital")
sub(".*?Take(.*?)_.*", "\\1", vec)
[1] "1" "2" "3" "4" "5" "5a"
答案 1 :(得分:0)
使用gsub():
假设您有一个数据框df并想更改列
df$column <- gsub("^D20181116_Basel-Take","",df$column)
df$column <- gsub("_digital$","",df$column)