ls()
возвращает вектор символов с именами объектов в вашей рабочей области.
Давайте запустим этот пример в новом сеансе R:
x <- 1:4
y <- data.frame(x = x, y = 2*x)
ls()
[1] "x" "y"
Теперь, если вы перебираете ls()
, вы перебираете вектор символов, а не фактическое рабочее пространство. (Я использую print вместо View
, чтобы перехватить вывод цикла)
for(i in ls()){
print(i)
}
[1] "x"
[1] "y"
Вы можете исправить это, используя get
, но вам нужно использовать lapply
в качестве цикла, при котором вывод перезаписывается в каждой итерации:
lapply(ls(), function(i) {
View(get(i))
})
Или вы используете mget(ls())
, чтобы сначала получить объекты, а затем применить View
к нему:
lapply(mget(ls()), View)