2014-10-27 65 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是快...