如何正确地将数据帧与循环合并

时间:2018-01-29 09:17:32

标签: r merge

如果我想避免for循环(并使用lapply或do.call代替),我如何合并下面的数据框(在我的情况下cbind实际上不是一个选项)。 我有一个给定的“基础”数据框和一个创建几个要添加的数据帧的函数。

set.seed(1)

# creates example data frames
newCol <- function(x) {
  add_df <-data.frame("nr" = 1:5, runif(1))
  colnames(add_df)[2] <- x
  return(add_df)
}

# for-version - gives wanted result, but with for
df_base <- newCol("A")
for (x in x_vec) {
  df_base <- merge(df_base, newCol(x), on = "nr")
}
print(df_base)

# cbind - creates unnecessary "nr"-columns
df_base <- newCol("A")
do.call(cbind, lapply(x_vec, newCol))

# want: solution with merge (!) and lapply/do.call

Thx&amp;亲切的问候

0 个答案:

没有答案