Как отобразить или напечатать содержимое среды в R - PullRequest
0 голосов
/ 07 мая 2018

Я надеюсь, что этот вопрос не является дубликатом, потому что я искал, он не нашел никакого ответа (Если это обман, пожалуйста, дайте мне знать, я удалю его).

Я пытаюсь напечатать / отобразить содержимое среды, но не могу этого сделать.

library(rlang)
e1 <- env(a = 1:10, b= letters[1:5])

Когда я использую print, он просто дает мне адрес памяти, а не содержимое (имена и значения) этой среды.

 > print(e1)
<environment: 0x00000000211fbae8>

Примечание : я могу видеть env. содержимое на вкладке Среды R studio, я использую R версия : "R версия 3.4.2" и rlang : rlang_0.2.0

У меня вопрос : Какова правильная функция для печати содержимого среды? Извините, вопрос может быть наивным, но я не могу понять. Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 07 мая 2018

Мы можем использовать get с параметром envir, чтобы получить значения из определенной среды

sapply(ls(e1), function(x) get(x, envir = e1))

#$a
# [1]  1  2  3  4  5  6  7  8  9 10

#$b
#[1] "a" "b" "c" "d" "e"

, где

ls(e1) # gives
#[1] "a" "b"
0 голосов
/ 07 мая 2018

Мы можем использовать mget

mget(ls(e1), envir = e1)
#$a
#[1]  1  2  3  4  5  6  7  8  9 10

#$b
#[1] "a" "b" "c" "d" "e"
0 голосов
/ 07 мая 2018

Параметр может быть следующим:

lapply(ls(),function(x)get(x))

, который печатает содержимое среды global.

#Result:

# [[1]]
# [1] 1 2
# 
# [[2]]
# [1] 1 4
# 
# [[3]]
# [1] 1 1
# 
# [[4]]
# function (snlq) 
# {
#   j <- 1
#   for (i in 1:length(snlq)) {
#     ind <- index(snlq[[i]])
#     if (identical(ind[length(ind)], "2018-05-04") == FALSE) {
#       ss[j] <- i
#       j <- j + 1
#     }
#   }
#   return(ss)
# }
# <bytecode: 0x000000001fa07290>
#
#... so on
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...