簡體   English   中英

通過數據框名稱向量合並數據幀

[英]Merging dataframes by a vector of dataframe names

我想合並大約30個數據幀。

我已將全局環境保存為矢量,逗號分隔,如下所示;

df_names <- (df1, df2, df3, df4)

現在我正在嘗試合並所有這些數據幀

total <- merge(df_names, by = 'ID')

但我收到了一個錯誤;

Error in as.data.frame(y) : argument "y" is missing, with no default

將注釋轉換為答案,您可能正在尋找mgetReduce以及merge的組合。

演示:

df1 <- data.frame(ID = 1:3, var = c("a", "b", "c"))
df2 <- data.frame(ID = c(1, 3, 4), var = c("A", "B", "X"))
df3 <- data.frame(ID = c(2, 3, 4, 5), var = c("X", "Y", "Z", "A")) 
df4 <- data.frame(ID = 1:5, var = letters[1:5])
Reduce(function(x, y) merge(x, y, by = "ID", all = TRUE), mget(paste0("df", 1:4)))
#   ID var.x var.y var.x var.y
# 1  1     a     A  <NA>     a
# 2  2     b  <NA>     X     b
# 3  3     c     B     Y     c
# 4  4  <NA>     X     Z     d
# 5  5  <NA>  <NA>     A     e
# Warning message:
# In merge.data.frame(x, y, by = "ID", all = TRUE) :
#   column names ‘var.x’, ‘var.y’ are duplicated in the result

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM