【问题标题】:Create a list of data frames from list of data frame names (for merge_all)从数据框名称列表创建数据框列表(用于 merge_all)
【发布时间】:2019-11-08 17:17:53
【问题描述】:

我有一个数据框名称列表,我想创建一个数据框列表(或者我希望能够使用数据框名称列表来调用数据框本身)。这个想法是能够将所有数据帧合并成一个数据帧名称列表。

下面有一个例子,我犯的错误很明显:当我引用数据框名称列表时,我合并名称本身,而不是名称所指的数据框:

names.df<-c("red","green","blue")
variables.df<-c(1, 2, 3)

for(i in 1:length(names.df)){
assign(names.df[i],as.data.frame(i*variables.df))
}

df<-Reduce(function(x, y) merge(x, y, all=TRUE), list(names.df))

关于如何解决这个问题的任何想法?

【问题讨论】:

  • 谢谢!你不想回答下面的问题吗?

标签: r list dataframe merge


【解决方案1】:

如果环境中已经存在data.frames(redbluegreen),你应该可以这样做

mget(names.df)

从您的问题中不清楚它们是否已经存在。如果他们不这样做,您必须采用稍微不同的方法

setNames(object = lapply(seq_along(names.df), function(i){
    data.frame(val = variables.df * i)
}), nm = names.df)

#$red
#  val
#1   1
#2   2
#3   3

#$green
#  val
#1   2
#2   4
#3   6

#$blue
#  val
#1   3
#2   6
#3   9

【讨论】:

    猜你喜欢
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2021-07-09
    • 2020-09-19
    • 2016-02-29
    相关资源
    最近更新 更多