R 全局环境中的Llist数据帧名称

R 全局环境中的Llist数据帧名称,r,function,dataframe,R,Function,Dataframe,我正在尝试编写一个函数,列出全局环境中数据帧的名称 我可以使用以下代码执行此操作: l<-ls() l[sapply(l, function(x) is.data.frame(get(x)))] l您必须知道,ls()默认情况下会列出当前环境中的对象。如果将代码封装在函数中,那么当前环境就是内部函数环境,此时该环境为空(我们位于函数的第一行,尚未定义任何内容)。由于您对全局环境感兴趣,因此必须使用.GlobalEnv: lsf <- function() { l<-ls(

我正在尝试编写一个函数,列出全局环境中数据帧的名称

我可以使用以下代码执行此操作:

l<-ls()
l[sapply(l, function(x) is.data.frame(get(x)))]

l您必须知道,
ls()默认情况下会列出当前环境中的对象。如果将代码封装在函数中,那么当前环境就是内部函数环境,此时该环境为空(我们位于函数的第一行,尚未定义任何内容)。由于您对全局环境感兴趣,因此必须使用
.GlobalEnv

lsf <- function() {
  l<-ls(.GlobalEnv)
  l[sapply(l, function(x) is.data.frame(get(x, envir = .GlobalEnv)))]
}

lsf()

lsf也许你可以试试下面的代码

list.df <- function() names(Filter(is.data.frame,mget(ls())))

list.df您可以在一个环境中使用
as.list
,然后将
sapply
is一起使用。任何类似的


list\u all\u x可能会将
envir=.GlobalEnv
也传递到
get
函数以获得更多specific@inscaven好主意,编辑了我的答案。非常感谢。不包括
.GlobalEnv
是一个明显的疏忽!谢谢您还可以使用
data.table
library并从中使用函数
tables()
-此函数还显示表的大小(nrow、ncol、RAM量),而这是专门询问如何将其转换为函数的,这一部分与执行
function.name感谢M--一样简单。我有很多东西要学!