将数据框合并为一个函数

时间:2016-01-18 22:58:26

标签: r function merge

作为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'必须匹配列数

1 个答案:

答案 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时,请务必将var1var2作为字符传递,即mer(d1, d2, "wt1", "wt2")

最后一点。如果您要合并的名称在数据库中是相同的(即两者都是wt),则只需使用by="wt"