현재 환경에서 사용 가능한 데이터 프레임 이름 벡터를 얻으려면 어떻게해야합니까? 나는 시도했다 :사용 가능한 데이터 프레임 목록 가져 오기
sapply(ls(), is.data.frame)
그러나 이것은 문자열 때문에 ls
반환 벡터를 실패합니다. 이 목록을 Shiny 앱에서 동적 선택을위한 입력으로 사용할 계획입니다.
현재 환경에서 사용 가능한 데이터 프레임 이름 벡터를 얻으려면 어떻게해야합니까? 나는 시도했다 :사용 가능한 데이터 프레임 목록 가져 오기
sapply(ls(), is.data.frame)
그러나 이것은 문자열 때문에 ls
반환 벡터를 실패합니다. 이 목록을 Shiny 앱에서 동적 선택을위한 입력으로 사용할 계획입니다.
당신은 환경의 개체를 통해 루프 eapply
를 사용할 수 있습니다 :
x <- 1:10
y <- mtcars
eapply(.GlobalEnv,is.data.frame)
$x
[1] FALSE
$y
[1] TRUE
names(which(unlist(eapply(.GlobalEnv,is.data.frame))))
[1] "y"
get
필요
,이 시도 :
x <- sapply(sapply(ls(), get), is.data.frame)
names(x)[(x==TRUE)]
을 당신이 데이터 자체 프레임보다는 이러한 데이터 프레임의 실제 이름을 묻는 것 같아? 당신은 할 수있다 :
get()
는 주어진 문자 이름의 값을 돌려 준다.
Filter(function(x) is.data.frame(get(x)), ls())
을 내가 기반으로 수정 lsos()
기능을 사용하여 기본적으로 같은 일을하고의
정돈 방법 on this question
library(devtools)
source_url("https://raw.github.com/rsaporta/pubR/gitbranch/memoryFunctions.R")
## only show data.frames of at least ~1KB
lsos(t="data.frame")
## show data.frames of any size
lsos(t="data.frame", b=1)
### OUTPUT
KB Type Rows Columns
anotherDF 5 data.frame 50 4
df 0.8 data.frame 5 2
나는 [이 질문] (http://stackoverflow.com/questions/1358003/tricks-to-manage-the-available-memory-in-an-r-session)을 기반으로 수정 된'lsos()'함수를 사용합니다.) –