我正在尝试从下面的示例数据中获取一个新列“物种”,该列应仅包含“样本”列中的字符。
Sample GermD OD GermDD
<chr> <dbl> <dbl> <dbl>
1 TP_126 2 4.20 2
2 TP_126 2 4.35 2
3 TP_124 2 3.87 2
4 TP_124 NA 4.33 10
5 NP_120 2 4.92 2
6 NP_120 2 3.78 2
7 LO_100 2 4.05 2
我正在尝试以下代码:
df %>%
dplyr::mutate(Species = strsplit(Sample, split="_"))
期望的结果应该是这样的。
Sample GermD OD GermDD Species
<chr> <dbl> <dbl> <dbl> <chr>
1 TP_126 2 4.20 2 TP
2 TP_126 2 4.35 2 TP
3 TP_124 2 3.87 2 TP
4 TP_124 NA 4.33 10 TP
5 NP_120 2 4.92 2 NP
6 NP_120 2 3.78 2 NP
7 LO_100 2 4.05 2 LO
感谢您的帮助。
最佳答案
您还可以这样做:
library(dplyr)
df %>%
mutate(Species = sub('_.*', '', Sample))
输出:
Sample GermD OD GermDD Species
1 TP_126 2 4.20 2 TP
2 TP_126 2 4.35 2 TP
3 TP_124 2 3.87 2 TP
4 TP_124 NA 4.33 10 TP
5 NP_120 2 4.92 2 NP
6 NP_120 2 3.78 2 NP
7 LO_100 2 4.05 2 LO
关于r - 如何通过仅对 R 中现有列中的行中的文本进行子集化来创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60696472/