我想在我的数据集中创建一个新列:i)如果单词本身以“vi”开头,则删除最后一个字符; ii)如果单词本身不以“vi”开头,则删除最后2个字符。我知道如何在R中工作,如下所示:
iris$Species <- as.character(iris$Species)
iris$Species_mod <- substr(iris$Species,
1,
ifelse(grepl('^vi',iris$Species),
nchar(iris$Species)-1,
nchar(iris$Species)-2))
但我很难解读dplyr中的mutate
,if_else
和matches
。任何人都可以开导我吗?谢谢!
答案 0 :(得分:0)
同样的想法,除非您明确需要将您的因子转换为字符串
rm -rf ~/Library/Application\ Support/VisualVM/8u40/config/Windows2Local/
答案 1 :(得分:0)
iris %>%
mutate(Species = as.character(Species)) %>%
rowwise() %>%
mutate(species2 = case_when(
Species == 'vi%' ~ substr(Species, 0, nchar(Species) - 1),
Species != 'vi%' ~ substr(Species, 0, nchar(Species) - 2)
))