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

R 使用名称而不是数字的数据帧列表?

R 使用名称而不是数字的数据帧列表?,r,list,R,List,我不确定这个问题是否太基本,但由于我在谷歌搜索了很长一段时间后仍未找到答案,我不得不在这里提问 假设我想从数据帧(df1和df2)中创建一个列表,如何使用数据帧的名称作为列表“索引”(?)而不是数字?即,我如何获得[[df1]]而不是[[1]]和[[df2]]而不是[[2]] list(structure(list(a = 1:10, b = 1:10), .Names = c("a", "b"), row.names = c(NA, -10L), class = "data.frame"),

我不确定这个问题是否太基本,但由于我在谷歌搜索了很长一段时间后仍未找到答案,我不得不在这里提问

假设我想从数据帧(df1和df2)中创建一个列表,如何使用数据帧的名称作为列表“索引”(?)而不是数字?即,我如何获得[[df1]]而不是[[1]]和[[df2]]而不是[[2]]

list(structure(list(a = 1:10, b = 1:10), .Names = c("a", "b"), row.names = c(NA, 
-10L), class = "data.frame"), structure(list(b = 1:10, a = 1:10), .Names = c("b", 
"a"), row.names = c(NA, -10L), class = "data.frame"))

好吧,问这个问题的方式完全不同,希望能让事情更清楚;)

我有三个数据帧

weguihl <- structure(list(a = 1:3, b = 1:3), .Names = c("a", "b"), row.names = c(NA, -3L), class = "data.frame")
raeg <- structure(list(b = 1:3, a = 1:3), .Names = c("b", "a"), row.names = c(NA, -3L), class = "data.frame")
awezilf <- structure(list(a = 1:3, b = 1:3), .Names = c("a", "b"), row.names = c(NA, -3L), class = "data.frame")
weguihl <- structure(list(a = 1:10, b = 1:10), .Names = c("a", "b"), row.names = c(NA, -10L), class = "data.frame")
raeg <- structure(list(b = 1:10, a = 1:10), .Names = c("b", "a"), row.names = c(NA, -10L), class = "data.frame")
awezilf <- structure(list(a = 1:10, b = 1:10), .Names = c("a", "b"), row.names = c(NA, -10L), class = "data.frame")
因此,我更喜欢这个输出

    > li
[[weguihl]]
  a b
1 1 1
2 2 2
3 3 3

[[raeg]]
  b a
1 1 1
2 2 2
3 3 3

[[awezilf]]
  a b
1 1 1
2 2 2
3 3 3

如何实现这一目标?

您可以在清洁的全球环境中通过
mget
实现这一目标。 差不多

清洁全球环境

rm(list = ls()) 
您可以使用数据帧

weguihl <- structure(list(a = 1:3, b = 1:3), .Names = c("a", "b"), row.names = c(NA, -3L), class = "data.frame")
raeg <- structure(list(b = 1:3, a = 1:3), .Names = c("b", "a"), row.names = c(NA, -3L), class = "data.frame")
awezilf <- structure(list(a = 1:3, b = 1:3), .Names = c("a", "b"), row.names = c(NA, -3L), class = "data.frame")
weguihl <- structure(list(a = 1:10, b = 1:10), .Names = c("a", "b"), row.names = c(NA, -10L), class = "data.frame")
raeg <- structure(list(b = 1:10, a = 1:10), .Names = c("b", "a"), row.names = c(NA, -10L), class = "data.frame")
awezilf <- structure(list(a = 1:10, b = 1:10), .Names = c("a", "b"), row.names = c(NA, -10L), class = "data.frame")

你的问题不清楚。示例数据中的
列表
没有名称。您可以先添加名称(
names(L)是的,对不起,我的问题是:如何让我的列表自动包含数据帧的名称?因此,如果我的dfs不是df1、df2等,但是df_-bla、df_-bl、df_-blabla,我如何将这些名称添加到列表中?嗯,现在不确定这是否更清楚..不,仍然不清楚:-)您的意思是说您的环境中有一些
数据.frame
s,您想将它们组合成一个
列表
,名称作为
列表
名称保持不变吗<代码>mget(c(“df1”、“df2”))
。你也可以使用
ls()
来帮助将名字分组在一起,如果它们遵循一个共同的命名模式。也许,我会编辑这个问题…@martin right,done!嗯,好的,我不确定这是否适用于我的真实数据,因为我要在列表中组合的dfs首先是从各种其他数据帧创建的,所以我不知道如何将结果数据帧作为列表名“隔离”。@好的,直接将它们放在列表中,而不创建中间对象。或者你可以在
ls
@Roland中使用正则表达式,我也在考虑正则表达式,但无法在他的数据帧中识别任何常见模式names@DavidArenburg如果全部失败,他们可以在正则表达式中指定每个名称。@Roland,好吧,这和Ananda在评论中建议的使用
名称没有什么不同
li <- mget(ls(), .GlobalEnv)
li
# $awezilf
# a b
# 1 1 1
# 2 2 2
# 3 3 3
# 
# $raeg
# b a
# 1 1 1
# 2 2 2
# 3 3 3
# 
# $weguihl
# a b
# 1 1 1
# 2 2 2
# 3 3 3