显示R中列表中的数据而不动态更改变量名称

时间:2016-09-19 20:55:58

标签: r

我在R中编写一些代码来构建数据框列表。在运行时,它需要在单独的选项卡中显示它创建的每个数据框。数据框和列表都是由几个嵌套的for循环创建的,它们是:

df.list <- vector("list", length(e))
i <- 1
for (...){
  data <- as.data.frame(stuff)
  j <- 1
  for (...){
    for (...){
      [loop stuff]
      data[j,] <- [more stuff]
    }
  }
  df.list[[i]] <- data
  i <- i + 1
}

问题是放置“查看”功能的位置。如果我在列表中添加第二个循环并显示数据框,那么它们都会被命名为“df.list”。如果我把视图(数据)放在df.list [[i]]&lt; - data之前,那么它们都被命名为“data”。让它们具有相同的名称对于这种情况来说是不可接受的情况。理想情况下,我可以将它们命名为我想要的任何字符串,但我会满足于任何合理可理解且可与其他数据帧区别开来的东西。

我知道我可以通过动态地将变量名称更改为datai来解决这个问题,其中i是列表索引,但这几乎总是错误的做事方式。

2 个答案:

答案 0 :(得分:2)

我以为我永远不会使用eval(parse())发布回答,但这是我能想到的唯一方法:

# sample data
df.list = list(mtcars, iris)
# name your list however you want the tabs to be named
names(df.list) = c("mtcars data", "this is iris")

for (i in seq_along(df.list)) eval(parse(text = sprintf("View(df.list[['%s']])", names(df.list)[i])))

这可能是你的意思&#34;动态地将变量名称改为datai,其中i是列表索引&#34;,我同意它几乎总是错误的。在这种情况下,它也可能是迄今为止最方便的方式。

答案 1 :(得分:1)

从评论中发布解决方案,以便我可以关闭:

View()函数将名称作为可选参数! View(data, name)会显示data并调用标签name