Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.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/7/google-maps/4.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 - Fatal编程技术网

R 将列表附加到列表中

R 将列表附加到列表中,r,R,我知道这是一个真正的noob问题,但是我如何将dataframes列表附加到dataframes以形成一个新列表,所有data.frames都在列表中的同一级别 我的一些尝试: > df <- data.frame(time=1:5) > df time 1 1 2 2 3 3 4 4 5 5 > innerlist <- list(df,df,df) > innerlist [[1]] time 1 1 2

我知道这是一个真正的noob问题,但是我如何将dataframes列表附加到dataframes以形成一个新列表,所有data.frames都在列表中的同一级别

我的一些尝试:

> df <- data.frame(time=1:5)
> df
  time
1    1
2    2
3    3
4    4
5    5
> innerlist <- list(df,df,df)
> innerlist
[[1]]
  time
1    1
2    2
3    3
4    4
5    5

[[2]]
  time
1    1
2    2
3    3
4    4
5    5

[[3]]
  time
1    1
2    2
3    3
4    4
5    5

> outerlist <- list(df,innerlist)
> outerlist
[[1]]
  time
1    1
2    2
3    3
4    4
5    5

[[2]]
[[2]][[1]]
  time
1    1
2    2
3    3
4    4
5    5

[[2]][[2]]
  time
1    1
2    2
3    3
4    4
5    5

[[2]][[3]]
  time
1    1
2    2
3    3
4    4
5    5


> outerlist2 <- c(df,innerlist)
> outerlist2
$time
[1] 1 2 3 4 5

[[2]]
  time
1    1
2    2
3    3
4    4
5    5

[[3]]
  time
1    1
2    2
3    3
4    4
5    5

[[4]]
  time
1    1
2    2
3    3
4    4
5    5

> outerlist3 <- cbind(df,innerlist)
> outerlist3
  time time time time
1    1    1    1    1
2    2    2    2    2
3    3    3    3    3
4    4    4    4    4
5    5    5    5    5

如果希望
df
成为列表元素,则必须将其包装在
list
中,因为data.frame在内部是一个列表。例如:

append(list(df), innerlist)
c(list(df), innerlist)

正如您所认识到的,
c
是组合列表的正确功能。虽然data.frame也是一个列表,
c
将删除data.frame属性并将其放到包含向量的列表中。您可以通过将其包装到另一个列表中来保护它:

c(list(df),innerlist)
[[1]]
  time
1    1
2    2
3    3
4    4
5    5

[[2]]
  time
1    1
2    2
3    3
4    4
5    5

[[3]]
  time
1    1
2    2
3    3
4    4
5    5

[[4]]
  time
1    1
2    2
3    3
4    4
5    5

啊,太好了,谢谢!你已经解释了原因,所以我现在明白了。
c(list(df),innerlist)
[[1]]
  time
1    1
2    2
3    3
4    4
5    5

[[2]]
  time
1    1
2    2
3    3
4    4
5    5

[[3]]
  time
1    1
2    2
3    3
4    4
5    5

[[4]]
  time
1    1
2    2
3    3
4    4
5    5