作为R的新手用户,我想了解如何编写一个需要多个2个数据帧的函数并返回它的合并。我尝试过:
mer<-function(df1 , df2){
zz <- merge(df1, df2,by.x = wt,by.y= wt, all = TRUE)
zz[is.na(zz)] <- 0
return(zz)
}
但我得到的错误是
fix.by(by.y,y)出错:'by'必须匹配列数
答案 0 :(得分:0)
你错过了几件事。首先,我将变量作为参数传递。它使您的功能更加明确。其次,在merge
函数内必须将变量作为括号传递,即“wt”。
mer <- function(df1 , df2, var1, var2){
zz <- merge(df1, df2, by.x = var1, by.y= var2, all = TRUE)
zz[is.na(zz)] <- 0
return(zz)
}
使用mer
时,请务必将var1
和var2
作为字符传递,即mer(d1, d2, "wt1", "wt2")
。
最后一点。如果您要合并的名称在数据库中是相同的(即两者都是wt),则只需使用by="wt"
。