gpt4 book ai didi

r - 查找一个字符串是否包含在 R 中的另一个字符串中

转载 作者:行者123 更新时间:2023-12-01 04:44:36 29 4
gpt4 key购买 nike

我正在尝试查找一个字符串是否包含在不同数据框中的另一个字符串中。我正在使用 if 语句和 for 循环,我想保持结构不变,但就是找不到要使用的正确语法。我的第一个数据框的一个例子是:

Route1
x y z
w x f z
a b c
x y z

我的第二个数据框的示例是:

Route2      Track
x y z A
v w x f z B
a b C

一旦我发现 Route1 是否包含在 Route 2 中,我想为 Route 1 分配相应的 Track。因此,数据框 1 的最终数据框应该是:

Route1   CalculatedTrack
x y z A
w x f z B
a b
x y z A

我目前的公式是:

for (i in 1:nrow(df1)){
for (j in 1:nrow(df2)){
if((((grepl(df1$Route1[i], df2$Route2[j],perl = TRUE)==TRUE){
df1$CalculatedTrack<-df2$Track[j]
}
}
}

因此我想遍历每一行以查看 Route1 是否在任何 Route2 中。请注意,我在每个数据框中有多个列。

感谢您的帮助

最佳答案

在data.table语法中,我们可以这样做:

library(data.table)
setDT(df1)
setDT(df2)
df1[, Track := df1[, df2[grepl(Route1, df2$Route2), Track[1]], 1:NROW(df1)][,V1]]

请注意,如果为任何行找到多个 Track 匹配项,则假定将使用第一个匹配项

关于r - 查找一个字符串是否包含在 R 中的另一个字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47815659/

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