gpt4 book ai didi

r - 在单词列表上拆分字符串

转载 作者:行者123 更新时间:2023-12-02 05:32:36 25 4
gpt4 key购买 nike

我有一个来自二手来源的数据框,其中一列中有很多关键信息,用空格分隔。我不能简单地使用 str_split,因为一些关键信息的名称中有一个空格,但它们前面有一个分组变量。这是一个使用食物和食物组的例子:

foo1 <- paste('FRUIT', 'Apple', 'PROTEIN', 'Chicken', 'STARCH', 'Banana Bread', 'FRUIT', 'Strawberry')
foo2 <- paste('PROTEIN', 'Pork', 'FAT', 'Butter', 'FRUIT', 'Banana', 'STARCH', 'Spaghetti')
foo3 <- paste('FRUIT', 'Strawberry', 'PROTEIN', 'Lean Steak', 'FRUIT', 'Strawberry', 'STARCH', 'Potato')

df <- rbind(foo1, foo2, foo3)
df

foo1 "FRUIT Apple PROTEIN Chicken STARCH Banana Bread FRUIT Strawberry"
foo2 "PROTEIN Pork FAT Butter FRUIT Banana STARCH Spaghetti"
foo3 "FRUIT Strawberry PROTEIN Lean Steak FRUIT Strawberry Starch Potato"

在这种情况下,我想要抓取的关键部分是实际的食物,但我不能分割空间,因为存在“香蕉面包”之类的东西。因此,我只能拆分水果、蛋白质、淀粉或脂肪,但我想不出一个好的方法来做到这一点。在我的实际表中,仍然只有 4 个“分组”,但是有超过 500 个单独的项目,因此尝试用空格映射特定的项目将是一个巨大的痛苦。以下几行不起作用:

str_split(df, c('FRUIT', 'PROTEIN', 'STARCH', 'FAT'))
str_split_fixed(df, c('FRUIT', 'PROTEIN', 'STARCH', 'FAT'), 4)

有什么想法吗?提前致谢。

最佳答案

您可以使用正则表达式来做到这一点:

str_split(df, c('FRUIT|PROTEIN|STARCH|FAT'))
[[1]]
[1] "" " Apple " " Chicken " " Banana Bread " " Strawberry"

[[2]]
[1] "" " Pork " " Butter " " Banana " " Spaghetti"

[[3]]
[1] "" " Strawberry " " Lean Steak " " Strawberry " " Potato"

在 paste 中使用 collapse arg 将你的 vec 转换为正则表达式:

paste(c('FRUIT', 'PROTEIN', 'STARCH', 'FAT'), collapse = '|')
[1] "FRUIT|PROTEIN|STARCH|FAT"

最好的,

科林

关于r - 在单词列表上拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48125357/

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