2009-02-06 24 views

回答

23

沒有,但你可以把它寫自己:

q <- function(...) { 
    sapply(match.call()[-1], deparse) 
} 

而只是爲了顯示它的工作原理:

> q(a, b, c) 
[1] "a" "b" "c" 
+12

這是一個很好的功能,你給了一個不幸的名字... – Dason 2012-08-16 14:31:38

5
qw = function(s) unlist(strsplit(s,' ')) 
8

流行Hmisc package提供的功能Cs()做到這一點:

library(Hmisc) 
Cs(foo,bar) 
[1] "foo" "bar" 

它採用了類似的策略,以哈德利的答案:

Cs 
function (...) 
{ 
    if (.SV4. || .R.) 
     as.character(sys.call())[-1] 
    else { 
     y <- ((sys.frame())[["..."]])[[1]][-1] 
     unlist(lapply(y, deparse)) 
    } 
} 
<environment: namespace:Hmisc> 
11

我加入這個功能,我Rprofile.site文件(見?Startup如果你不熟悉)

qw <- function(x) unlist(strsplit(x, "[[:space:]]+")) 

qw("You can type text here 
    with linebreaks if you 
    wish") 
# [1] "You"  "can"  "type"  "text"  
# [5] "here"  "with"  "linebreaks" "if"   
# [9] "you"  "wish"  
+2

當你第一次發佈這個答案時,我把它放在個人包裝中,並且我一直使用它。這很棒。謝謝。 – GSee 2014-10-24 18:34:50

3

更簡單:

qw <- function(...){ 
as.character(substitute(list(...)))[-1] 
} 
相關問題