我要映射一个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```