gpt4 book ai didi

r - 提取可能字符列表左侧的所有字符

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

我在数据框中有一系列字符串,如下所示:

item_time<-c("pink dress july noon", "shirt early september morning", "purple dress 
april", "tall purple shoes february")

我想提取所有可能字符列表左侧的字符,如下所示:

time<-c("january", "january night", "february","march","april","may", "may 
morning", "june","july", "july noon","august","september","early september morning",
"october","november","december")

我想要的结果是这样的:

[1] pink dress
[2] shirt
[3] purple dress
[4] tall purple shoes

我无法用空格分隔它们,因为时间和项目列表中的单词数量不同。我也没有将它们分开的符号。我觉得应该有一种非常简单而优雅的方法来解决这个问题,但我想不出来。

最佳答案

我们可以在 Base R 中使用 strsplit:

sapply(strsplit(item_time, split=paste0("\\s", time, collapse="|")), `[`, 1)
# [1] "pink dress" "shirt" "purple dress" "tall purple shoes"

注意事项:

我首先折叠 time 向量并用 | 分隔每个术语,然后用它来拆分 item_timestrsplit。由于 strsplit 中的 split 参数接受正则表达式,它会将 | 解释为 OR 运算符,只要它看到时间sapply(...,[, 1) 然后查看列表的每个元素并提取第一个元素,这将是拆分后最左边的字符串。

关于r - 提取可能字符列表左侧的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51828052/

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