在R中显示列表中的数据而不动态更改变量名
我正在用R编写一些代码,用于构建数据帧列表。在运行时,它需要在单独的选项卡中显示它创建的每个数据帧。数据帧和列表都是由多个嵌套for循环创建的,沿以下行:在R中显示列表中的数据而不动态更改变量名,r,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,] <
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我本以为我永远不会用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])))
这可能就是您所说的“动态地将变量名更改为datai,其中i是列表索引”,我同意这几乎总是错误的。在这种情况下,它也可能是目前为止最方便的方法。我想我永远不会使用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])))
这可能就是您所说的“动态地将变量名更改为datai,其中i是列表索引”,我同意这几乎总是错误的。在这种情况下,这可能也是目前为止最方便的方法。从评论中发布解决方案,以便我可以关闭:
View()函数将名称作为可选参数<代码>查看(数据,名称)
将显示数据
,并调用选项卡名称
从注释中发布解决方案,以便我可以关闭:
View()函数将名称作为可选参数<代码>视图(数据,名称)将显示
数据
并调用选项卡名称
,这大致相当于我的想法,是的。你就是这样做的,这让我有点吃惊。。。我想不出任何其他的方法,不管是权宜之计还是不权宜之计。我打算暂时把这件事留着,希望有人有更好的主意。我希望有人有更好的主意!这大致相当于我的想法,是的。你就是这样做的,这让我有点吃惊。。。我想不出任何其他的方法,不管是权宜之计还是不权宜之计。我打算暂时把这件事留着,希望有人有更好的主意。我希望有人有更好的主意!df.list
是否有“名称”?除非我遗漏了什么,否则您可以使用来查看(名称中的nm(df.list))视图(df.list[[nm]],nm)
或者,在循环内部,访问/创建I
名称并将其传递给视图。不,您完全正确。不知何故,我忽略了一个事实,即您可以调用视图(数据、名称)。我认为View函数不会接受name参数。把这个写下来作为答案,我会接受的。df.list
有“名字”吗?除非我遗漏了什么,否则您可以使用来查看(名称中的nm(df.list))视图(df.list[[nm]],nm)
或者,在循环内部,访问/创建I
名称并将其传递给视图。不,您完全正确。不知何故,我忽略了一个事实,即您可以调用视图(数据、名称)。我认为View函数不会接受name参数。把这个写下来作为答案,我会接受的。