2014-10-27 53 views
-3
工作

我想下面的功能:命令ls是不是R中

srch = function(srchstr){ 
    print(ls(pattern=srchstr)) 
} 

虽然以下工作:

ls(pattern='ddf') 
[1] "ddf"   

调用函数将产生以下输出:

srch('ddf') 
character(0) 

我试过以下方法:

ss = srch('ddf') 
character(0) 

ss 
character(0) 

print(ss) 
character(0) 

unlist(ss) 
character(0) 

sapply(ss, print) 
named list() 

sapply(ss, cat) 
named list() 

cat(ss) 

'猫(ss)'根本没有输出!

这是怎么回事&这怎么解决?

+3

从'文档ls':“在默认情况下,调用LS的环境或使用对象。“和其他地方:“在函数内部没有参数的情况下调用时,ls会返回函数局部变量的名称:这对于浏览器是很有用的。” – joran 2014-10-27 15:38:16

回答

2

尝试看看在.GlobalEnv

srch = function(srchstr){ 
    print(ls(pattern=srchstr, envir = .GlobalEnv)) 
} 

编辑 joran是快...