尝试编写循环以在R中的单独窗口中打开所有数据框
我有以下代码在课程上不起作用:
for(i in ls()){
View(i)
}
这只是打开查看器,而我是数据框的名称。
我也尝试过徒劳无功。
任何提示
致谢
答案 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参数获取有意义的标题名称。