循环查看R中的所有数据帧

时间:2018-10-26 06:18:50

标签: r loops

尝试编写循环以在R中的单独窗口中打开所有数据框

我有以下代码在课程上不起作用:

for(i in ls()){
View(i)
}

这只是打开查看器,而我是数据框的名称。

我也尝试过徒劳无功。

任何提示

致谢

2 个答案:

答案 0 :(得分:4)

from __future__ import print_function from mailmerge import MailMerge from datetime import date template = "template.docm" document = MailMerge(template) print(document.get_merge_fields()) document.merge(field1='Name',field2='Address') document.write('template-output.docm') 返回带有工作空间中对象名称的字符向量。 让我们在全新的R会话中运行此示例:

ls()

现在,如果您遍历x <- 1:4 y <- data.frame(x = x, y = 2*x) ls() [1] "x" "y" ,则会遍历字符向量而不是实际工作空间。 (我使用print代替ls()来捕获循环的输出)

View

您可以使用for(i in ls()){ print(i) } [1] "x" [1] "y" 来解决此问题,但是您需要使用get,因为要进行循环,每次迭代都会覆盖输出:

lapply

或者您使用lapply(ls(), function(i) { View(get(i)) }) 首先获取对象,然后将mget(ls())应用于对象:

View

答案 1 :(得分:1)

df1 <- mtcars
df2 <- mtcars
df3 <- mtcars

lapply(ls(),function(x){View(get(x),x);NULL})

使用View的title参数获取有意义的标题名称。