【发布时间】:2021-07-10 12:23:23
【问题描述】:
我有以下数据集
> head(names$SAMPLE_ID)
[1] "Bacteria|Proteobacteria|Gammaproteobacteria|Pseudomonadales|Moraxellaceae|Acinetobacter|"
[2] "Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|Bacillus|"
[3] "Bacteria|Proteobacteria|Gammaproteobacteria|Pasteurellales|Pasteurellaceae|Haemophilus|"
[4] "Bacteria|Firmicutes|Bacilli|Lactobacillales|Streptococcaceae|Streptococcus|"
[5] "Bacteria|Firmicutes|Bacilli|Lactobacillales|Streptococcaceae|Streptococcus|"
[6] "Bacteria|Firmicutes|Bacilli|Lactobacillales|Streptococcaceae|Streptococcus|"
我想将|| 之间的最后一个单词提取为一个新变量,即
Acinetobacter
Bacillus
Haemophilus
我尝试过使用
library(stringr)
names$sample2 <- str_match(names$SAMPLE_ID, "|.*?|")
【问题讨论】:
-
简单路线:
vapply(strsplit(names$SAMPLE_ID, "|", fixed = TRUE), tail, "", 1) -
或者你们中的一些人不喜欢打字(或效率)然后
sapply(strsplit(x, "\\|"), tail, 1)