¿Tiene R operadores de tipo cotización como Perl’s qw ()?

¿Alguien sabe si R tiene operadores similares a comillas como Perl’s qw() para generar vectores de caracteres?

No, pero puedes escribirlo tú mismo:

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

Y solo para mostrar que funciona:

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

He agregado esta función a mi archivo Rprofile.site (consulte ?Startup si no está familiarizado)

 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" 

El popular paquete Hmisc ofrece la función Cs() para hacer esto:

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

que usa una estrategia similar a la respuesta de Hadley:

 Cs function (...) { if (.SV4. || .R.) as.character(sys.call())[-1] else { y < - ((sys.frame())[["..."]])[[1]][-1] unlist(lapply(y, deparse)) } }  
 qw = function(s) unlist(strsplit(s,' ')) 

Aún más simple:

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