我是一个数据帧,对于特定的列,我想要去掉下划线后面的所有内容。
因此:
但这会删除从第一个下划线开始的所有内容,并将其转换为:
因此:
test <- data.frame(label=c('test_test_test', 'test_tom_cat', 'tset_eat_food', 'tisk - tisk'),
stuff=c('blah', 'blag', 'gah', 'nah') ,
numbers=c(1,2,3, 4))
应该变成
result <- data.frame(label=c('test_test', 'test_tom', 'tset_eat', 'tisk - tisk'),
stuff=c('blah', 'blag', 'gah', 'nah') ,
numbers=c(1,2,3, 4))
我得到了:
require(dplyr)
test %>%
mutate(label = gsub('_.*','',label))
但这会删除从第一个下划线开始的所有内容,并将其转换为:
wrong_result <- data.frame(label=c('test', 'test', 'tset', 'tisk - tisk'),
stuff=c('blah', 'blag', 'gah', 'nah') ,
numbers=c(1,2,3, 4))
test %>% mutate(label = gsub('_[^_]*$', '', label))
- alistaire