gpt4 book ai didi

r - 获取字符向量中每个元素的第三个单词

转载 作者:行者123 更新时间:2023-12-05 09:01:46 26 4
gpt4 key购买 nike

我有以下称为strains的字符向量:

 head(strains, 10)

[1] "Lactobacillus gasseri APC678" "Lactobacillus gasseri DSM 20243"
[3] "Bifidobacterium angulatum B677" "Bifidobacterium breve Reuter S1"
[5] "Lactobacillus reuteri F275" "Lactobacillus acidophilus L917"
[7] "Lactobacillus acidophilus 4357" "Bifidobacterium pseudocatenulatum B1279"
[9] "Bifidobacterium longum subsp. infantis JCM 1210" "Clostridium difficile 43594"

我想要得到的是一个向量,其中只有菌株中每个元素的第三个单词。例如,在名为“Lactobacillusgasseri APC678”的元素中,我想只保留“APC678”。

我所做的如下:

library(tidyvese)

lapply(strains %>% str_split(" "), '[', 3) %>% unlist

这完成了我想要的工作,正如您在我的代码给出的输出中看到的:

 [1] "APC678" "DSM"    "B677"   "Reuter" "F275"   "L917"   "4357"   "B1279"  "subsp." "43594"  "subsp." "F275"   "1SL4"   "JCM"   
[15] "JCM" "AM63" "DSM" "L917" "61D" "Bb14" "AM63" "VPI"

但是,我正在寻找一种更优雅或更简洁的方式来执行相同的操作,可能使用正则表达式或类似的东西。


这是我的数据的dput:

strains <- c("Lactobacillus gasseri APC678", "Lactobacillus gasseri DSM 20243", 
"Bifidobacterium angulatum B677", "Bifidobacterium breve Reuter S1",
"Lactobacillus reuteri F275", "Lactobacillus acidophilus L917",
"Lactobacillus acidophilus 4357", "Bifidobacterium pseudocatenulatum B1279",
"Bifidobacterium longum subsp. infantis JCM 1210", "Clostridium difficile 43594"
)

最佳答案

stringr 包中有一个非常简单的 word 函数,无需使用正则表达式。

library(stringr)

stringr::word(strains, start = 3, end = 3)
[1] "APC678" "DSM" "B677" "Reuter" "F275" "L917" "4357"
[8] "B1279" "subsp." "43594"

关于r - 获取字符向量中每个元素的第三个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72631934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com