gpt4 book ai didi

R匹配键值向量与不规则字符串向量

转载 作者:行者123 更新时间:2023-12-01 13:48:00 25 4
gpt4 key购买 nike

我陷入了一场噩梦,我一直试图在论坛中找到但没有成功。所以我尝试直接询问。

我有一个包含随机城市的不规则字符串的向量,我想从包含城市名称的键值向量中提取/标记每个不规则字符串。例如,

Vector <- c("...the life in Paris is ...","In Roma, there is...","...nice weekend in New York with...")
Cities <- c("London","Paris","Madrid","Roma","New York")

对于Vector中的每一个字符串,都应该有一个来自Cities的相应值来对应。

一开始我想使用循环,但数据大小使 R 搜索太长,我更想使用一种带有 grep 的矩阵计算,但我总是出错。

你知道这是否是正确的方法吗?

最佳答案

您可以使用sapplygrepl:

check_vec <- sapply(Cities, grepl, Vector)
row.names(check_vec) <- Vector

check_vec
# London Paris Madrid Roma New York
#...the life in Paris is ... FALSE TRUE FALSE FALSE FALSE
#In Roma, there is... FALSE FALSE FALSE TRUE FALSE
#...nice weekend in New York with... FALSE FALSE FALSE FALSE TRUE

如果您需要每个向量的关键字:

apply(check_vec, 1, function (x) colnames(check_vec)[which(x)])
# ...the life in Paris is ... In Roma, there is... ...nice weekend in New York with...
# "Paris" "Roma" "New York"

编辑

为了更安全,正如@nicola 明智地建议的那样,您可以使用 vapply 而不是 sapply:

check_vec <- vapply(Cities, grepl, x=Vector, logical(length(Vector)))

关于R匹配键值向量与不规则字符串向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34331160/

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