映射数据框中的一列,使其与其他数据框中其他列的值部分匹配

时间:2019-11-21 08:14:41

标签: r dataframe text mapping

我要映射一个df中的列,使其与其他df中其他列的值部分匹配,如下例所示。

我的df有很多行,我不想使用循环,因为这会花费很多时间。此外,df比df1有更多的行,如示例所示。使用Fuzzyjoin包,它只是连接并更改了(a)列中的整个列内容。实际上,我想在其他df的帮助下映射a列。这是我的第一个问题,因此我无法添加df的图片。请提出任何建议 示例:

df<-data.frame(a=c('AdeshSrivastav','AvinashSingh','VikasSingh','whatAvinashSingh','AdeshSrivastav','Hello Aghoreshwarnarayana'))


df1 <- data.frame(c=c('Adesh','Avinash','Aghoreshwar','Vikas'),d=c('Ade','Avi','Aghor','Vik'))

预期答案: 应该像这个数据框

df <- data.frame(a = c('AdeshSrivastav','AvinashSingh','VikasSingh','what AvinashSingh','AdeshSrivastav','Hello Aghoreshwarnarayana'),d =c('Ade','Avi','Vik','Avi','Ade','Aghor'))

我正在尝试:

df$d <- df1[match(df1$c,df$a),2]

Error in ```$<-.data.frame`(`*tmp*`, d, value = c(NA_integer_, NA_integer_,  : 
  replacement has 4 rows, data has 6```

0 个答案:

没有答案