gpt4 book ai didi

r - 如何分离一串字符并将其作为向量在 R 中读取?

转载 作者:行者123 更新时间:2023-12-04 09:24:15 24 4
gpt4 key购买 nike

我有一个数据库,其中有一列包含一串字符中的物种名称:

plant.first.id$sp.lst[42]

返回:

[1] ['Trema lamarckianum', 'Parasponia rigida', 'Trema tomentosum', 'Trema micranthum', 'Cannabis sativa']

我想获取 plant.first.id$sp.lst 的整个列,并将值转换为一个我可以操作的向量。

例如,我想要这个:

> plant.first.id$sp.lst[3:5]
[1] []
[2] ['Ficus carica', 'Aphananthe philippinensis', 'Ficus insipida', 'Aphananthe monoica', 'Castilla elastica', 'Maclura cochinchinensis', 'Maclura fruticosa']
[3] ['Artocarpus tamaran']

dput(plant.first.id$sp.lst[3:5])
structure(c(14L, 7L, 1L), .Label = c("['Artocarpus tamaran']",
"['Artocarpus thailandicus']", "['Boronia algida', 'Zanthoxylum coreanum', 'Citrus reticulata']",
"['Cissus integrifolia', 'Cissus populnea', 'Cissus hastata', 'Cissus trianae', 'Cissus penninervis', 'Cissus assamica']",
"['Cryptandra amara', 'Broussonetia papyrifera', 'Serichonus gracilipes', 'Colubrina asiatica', 'Artocarpus tamaran', 'Artocarpus chama', 'Artocarpus thailandicus', 'Artocarpus rubrovenius', 'Gouania mauritiana']",
"['Enterolobium gummiferum']", "['Ficus carica', 'Aphananthe philippinensis', 'Ficus insipida', 'Aphananthe monoica', 'Castilla elastica', 'Maclura cochinchinensis', 'Maclura fruticosa']",
"['Maclura cochinchinensis']", "['Pouteria multiflora', 'Diospyros toposia', 'Van-royena castanosperma', 'Micropholis guyanensis', 'Pycnandra comptonii', 'Chrysophyllum venezuelanense']",
"['Pouteria multiflora', 'Van-royena castanosperma', 'Chrysophyllum venezuelanense', 'Pycnandra comptonii', 'Micropholis guyanensis']",
"['Trema lamarckianum', 'Cannabis sativa', 'Trema tomentosum', 'Parasponia rigida', 'Ficus annulata', 'Trema micranthum', 'Celtis iguanaea', 'Artocarpus thailandicus']",
"['Trema lamarckianum', 'Ficus annulata', 'Parasponia rigida', 'Trema tomentosum', 'Trema micranthum', 'Cannabis sativa']",
"['Trema lamarckianum', 'Parasponia rigida', 'Trema tomentosum', 'Trema micranthum', 'Cannabis sativa']",
"[]"), class = "factor")

变成这样的:

c("")
c('Ficus carica', 'Aphananthe philippinensis', 'Ficus insipida', 'Aphananthe monoica', 'Castilla elastica', 'Maclura cochinchinensis', 'Maclura fruticosa')
c('Artocarpus tamaran')

以列表形式。

我已经试过了:

strsplit(as.vector(plant.first.id$sp.lst[42]),split = ",")

但它不可用:

[[1]]
[1] "['Trema lamarckianum'" " 'Parasponia rigida'" " 'Trema tomentosum'" " 'Trema micranthum'" " 'Cannabis sativa']"

还有这个:

gsub("[[(]", "(", plant.first.id$sp.lst[[42]])
gsub("]", ")", plant.first.id$sp.lst[[42]])

但仍然不是很有帮助...

[1] "('Trema lamarckianum', 'Parasponia rigida', 'Trema tomentosum', 'Trema micranthum', 'Cannabis sativa']"
[1] "['Trema lamarckianum', 'Parasponia rigida', 'Trema tomentosum', 'Trema micranthum', 'Cannabis sativa')"

最佳答案

使用strplit 删除多余的空格和撇号

y <- sapply(x, gsub, pattern = "^\\['?|'?]$", replacement = "")
strsplit(y, "', '")

[[1]]
character(0)

[[2]]
[1] "Ficus carica" "Aphananthe philippinensis" "Ficus insipida" "Aphananthe monoica"
[5] "Castilla elastica" "Maclura cochinchinensis" "Maclura fruticosa"

[[3]]
[1] "Artocarpus tamaran"

关于r - 如何分离一串字符并将其作为向量在 R 中读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60269021/

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