現在の環境でデータフレーム名のベクトルを取得するにはどうすればよいですか?私は試しました:利用可能なデータフレームのリストを取得
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)))]
文字の名前が与えられたオブジェクトの値を返します。
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()'関数を使用します) –