top of page
  • takaohi

Rで3つ以上のデータフレームをmerge(ある列の要素に従い横に結合)する

デフォルトのmerge関数では、2つのデータフレームまでしか結合できないので、3つ以上のデータフレームを結合する関数を定義する。



#merge2関数を定義
merge2 <- function(dfs, ...)
{ 
    base <- dfs[1]
    lapply(dfs[-1], function(i) base <<- merge(base, i, ...))
    return(base)
}

上記の関数を用いて、複数のデータフレームをリストとして与え、結合

merged_df <- merge2(list(df1, df2, df3), by="ID", sort=T, all=T)

他のオプションなどは、merge関数の説明を参照。

閲覧数:33回0件のコメント
bottom of page