我有两个数据框;DF1 有 3 列,DF2 有 1 列。DF1 包含 DF2 中包含的所有元素,但其中大部分重复,如下所示。
DF1=
***freetext***, ***specific***, ***ICDcode***
Jaundice,hepatitisA,B,C Hepatitis A B15
Jaundice,hepatitisA,B,C Hepatitis B B16
Jaundice,hepatitisA,B,C Hepatitis C B17.1
Jaundice,hepatitisA,B,C Jaundice R17
lobar Pneumonia Lobar pneumonia J18.1
Lobar Pneumonia ,scabies Lobar pneumonia J18.1
scabiess scabies G10
DF2=
Jaundice,hepatitisA,B,C
scabiess
Lobar Pneumonia ,scabies
lobar Pneumonia
我希望在两个数据帧之间进行匹配,这样每当发生匹配时,都应该有一个采用 DF1 形式的结果数据帧。例如,黄疸、甲型肝炎、乙型肝炎、丙型肝炎应该出现 4 次,而不是出现一次柱子。换句话说,应保持如下所示的重复;
Resultant data frame should appear like this.
column1 column2 column3
Jaundice,hepatitisA,B,C Hepatitis A B15
Jaundice,hepatitisA,B,C Hepatitis B B16
Jaundice,hepatitisA,B,C Hepatitis C B17.1
Jaundice,hepatitisA,B,C Jaundice R17
那么,我应该如何遍历 DF2 以在 DF1(第一列)中找到匹配项,然后生成与所有其他相应行匹配的数据帧,如上所示?
这是我的脚本,但它似乎没有产生我想要的结果
newMatches<- data.frame()
for(i 1:nrow(DF1){ for(j in 1:nrow(DF2[,1]{grep(j, i, ignore.case=F, value=T)->newMatches}}
#it doesn't produce other columns of DF1
非常感谢任何帮助和/或建议。我是 R 的新手