Как получить всю серию данных в пользовательской среде - PullRequest
1 голос
/ 28 апреля 2019

Я хочу получить всю совокупность данных в созданной мною среде.Как я могу это сделать?

env <- new.env()
source("myscript.R", local = env)
listOfdf<-names(Filter(function(x) x, eapply(env, is.data.frame)))

 #Create the find and replace dataframe with the number representing each dataframe:
listOfdf<-data.frame(listOfdf,stringsAsFactors = FALSE)

Это ниже не работает

lapply(listOfdf$listOfdf,function(x) nrow(x))

1 Ответ

1 голос
/ 28 апреля 2019

Мы можем использовать mget и указать envir как 'env'

sapply(mget(listOfdf, envir = env), nrow)
# df1 df2 
#  5  10 

Здесь, listOfdf - это vector идентификаторов объектов, поэтому мы используем mget для получениязначения сохраняются в этих идентификаторах, расположенных в правильной среде как list, а затем перебирают list с sapply, чтобы получить количество строк (nrow)

data

env <- new.env()
env$df1 <- data.frame(col1 = 1:5, col2 = 6:10)
env$v1 <- 1:10
env$df2 <- data.frame(col1 = LETTERS[1:10])
listOfdf<-names(Filter(function(x) x, eapply(env, is.data.frame)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...