R 将数据帧中字符串的一部分与另一数据帧中的字符串相匹配
我有两个独立的数据帧,看起来像这样:R 将数据帧中字符串的一部分与另一数据帧中的字符串相匹配,r,R,我有两个独立的数据帧,看起来像这样: #data frame 1 set.seed(5) first<-c("Jane, Sarah","Bill, Conrad", "Jim, Dave", "Mark, Ben", "Mike, Frank") month<-c("Feb","Jan","Dec","Jun","Aug") df1<-data.frame(first,month) #data frame 2 first<-c("John", "Brendan", "
#data frame 1
set.seed(5)
first<-c("Jane, Sarah","Bill, Conrad", "Jim, Dave", "Mark, Ben", "Mike, Frank")
month<-c("Feb","Jan","Dec","Jun","Aug")
df1<-data.frame(first,month)
#data frame 2
first<-c("John", "Brendan", "Mark", "Dave", "Sarah", "Julie", "Frank", "Henry")
vals<-seq(8)*floor(runif(8,min=10, max=100))
df2<-data.frame(first,vals)
#数据帧1
种子(5)
首先,这对你有用吗?我们首先从列
中提取所有单词,然后对结果进行lappy
以获得匹配项
library(stringr)
df_res <- df1
df_res$vals <- lapply(str_extract_all(df1$first, "\\w+"), function(x) {res <- df2$vals[match(x, df2$first)]
res[is.na(res)] <- 0
max(res)
})
df_res
# first month vals
#1 Jane, Sarah Feb 95
#2 Bill, Conrad Jan 0
#3 Jim, Dave Dec 140
#4 Mark, Ben Jun 276
#5 Mike, Frank Aug 399
库(stringr)
df_resdf3
代码不工作。另外,迈克和弗兰克在df2
中都有匹配项,确定了。把迈克改成了“布兰登”,只配一个。还将df3固定为第一个月的VAL。这对于我设置的模型示例非常有效。谢谢我将在这里的工作数据集上尝试这个,看看它是如何运行的。如果有问题,我会让你知道。。。
library(stringr)
df_res <- df1
df_res$vals <- lapply(str_extract_all(df1$first, "\\w+"), function(x) {res <- df2$vals[match(x, df2$first)]
res[is.na(res)] <- 0
max(res)
})
df_res
# first month vals
#1 Jane, Sarah Feb 95
#2 Bill, Conrad Jan 0
#3 Jim, Dave Dec 140
#4 Mark, Ben Jun 276
#5 Mike, Frank Aug 399