如何獲取當前環境中可用的數據幀名稱向量?我試過了:獲取可用數據幀列表
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)]
我想你問這些數據幀而不是數據幀本身的實際名稱?你可以這樣做:
l <- ls()
l[sapply(l, function(x) is.data.frame(get(x)))]
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
我使用基於[這個問題]的修改的'lsos()'函數(http://stackoverflow.com/questions/1358003/tricks-to-manage-the-available-memory-in-an-r-session ) –