Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从数据帧名称列表创建数据帧列表(用于合并所有数据帧)_R_List_Dataframe_Merge - Fatal编程技术网

R 从数据帧名称列表创建数据帧列表(用于合并所有数据帧)

R 从数据帧名称列表创建数据帧列表(用于合并所有数据帧),r,list,dataframe,merge,R,List,Dataframe,Merge,我有一个数据帧名称列表,我想创建一个数据帧列表,或者我想能够使用数据帧名称列表来调用数据帧本身。其思想是能够将所有数据帧合并到数据帧名称列表中 下面有一个例子,我犯的错误很明显:当我引用数据帧名称列表时,我合并了名称本身,而不是名称所引用的数据帧: 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.fr

我有一个数据帧名称列表,我想创建一个数据帧列表,或者我想能够使用数据帧名称列表来调用数据帧本身。其思想是能够将所有数据帧合并到数据帧名称列表中

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

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))
关于如何解决这个问题有什么想法吗?

如果环境中已经存在红色、蓝色和绿色的data.frames,您应该可以这样做

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

非常感谢。你不想回答下面的问题吗?