当它以R中的小写字母开头时从数据框单元格中删除第一个单词

Removing first word from data frame cell when it starts with lowercase letter in R

我想用 R 中的细菌物种清理分类法 table,我想删除所有以小写字母开头的单元格的值。

我有一个来自分类 df 的专栏:

Species
Tuwongella immobilis
Woesebacteria
unidentified marine
bacterium Ellin506

我想要:

Species
Tuwongella immobilis
Woesebacteria
unwanted <- "^[:upper:]+[:lower:]+"
tax.clean$Species <- str_replace_all(tax.clean$Species, unwanted, "")

但它似乎不起作用并且与所需的物种不匹配。

我们可以做到

grep('^[A-Z]', df$Species, value = T)
[1] "Tuwongella immobilis" "Woesebacteria" 

如果您正在使用数据框,我建议使用 dplyr::filter 清理数据框。

grepl() returns 逻辑值,!grepl(^[[:lower:]]) 查找不以小写字母开头的任何内容(^ 表示字符串的开头)。

library(dplyr)

df %>% filter(!grepl("^[[:lower:]]", Species))

               Species
1 Tuwongella immobilis
2        Woesebacteria