Qualcuno sa se R ha operatori di tipo preventivo come Perl qw()
per la generazione di vettori di caratteri?R ha operatori di tipo preventivo come il qw di Perl()?
20
A
risposta
23
No, ma è possibile scrivere da soli:
q <- function(...) {
sapply(match.call()[-1], deparse)
}
E proprio per dimostrare che funziona:
> q(a, b, c)
[1] "a" "b" "c"
5
qw = function(s) unlist(strsplit(s,' '))
8
Il popolare Hmisc package offre la funzione Cs()
per fare questo:
library(Hmisc)
Cs(foo,bar)
[1] "foo" "bar"
che utilizza una strategia simile alla risposta di Hadley:
Cs
function (...)
{
if (.SV4. || .R.)
as.character(sys.call())[-1]
else {
y <- ((sys.frame())[["..."]])[[1]][-1]
unlist(lapply(y, deparse))
}
}
<environment: namespace:Hmisc>
11
Ho aggiunto questa funzione per il mio file Rprofile.site (vedi ?Startup
se non si ha familiarità)
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
L'ho messo in un pacchetto personale quando hai postato questa risposta per la prima volta, e la uso sempre. È ottimo. Grazie. – GSee
3
Ancora più semplice:
qw <- function(...){
as.character(substitute(list(...)))[-1]
}
Problemi correlati
- 1. python equivalente a QW di perl()
- 2. VBScript ha operatori di incremento
- 3. python ha operatori di conversione?
- 4. Come evitare il doppio preventivo?
- 5. Perché Scheme ha sia la lista che il preventivo?
- 6. Creazione di pacchetti con Perl
- 7. python ha il suo messaggio di errore come $! in perl
- 8. Matrici di tipo C in perl
- 9. la classe A ha un parametro di tipo, ma il tipo B ha uno
- 10. Che tipo di zucchero sintattico è disponibile in Perl per ridurre il codice per operatori l/valore rvalore e se le istruzioni?
- 11. Il null ha il tipo di oggetto?
- 12. Bash hashmap utilizzando il preventivo come chiave
- 13. R, R6 overloading degli operatori
- 14. Come trovare il tipo di oggetto che ho su Perl?
- 15. Come gestire il tipo di valore hash in Perl XS
- 16. Qual è il nome per questo tipo di operatori: '+ =', '- ='
- 17. Come specificare il preventivo singolo nell'espressione regolare
- 18. Come modificare il tipo di colonna di matrice in R
- 19. Perl confronta operatori e stringhe "numeri"
- 20. Operatori di conversione di tipo di riferimento: chiedere problemi?
- 21. Gli operatori Perl sono "scoperti" e non progettati?
- 22. Il caching di Django - può essere fatto in modo preventivo?
- 23. di Perl elenca
- 24. come convocare l'hash perl per l'hash di javascript
- 25. Tipo di ritorno di operatori bit a bit in C++
- 26. Operatori come letterali di funzione
- 27. permanentemente stabilito di goccia FALSE operatori vettoriali in R
- 28. Come utilizzare l'indicatore/r nella regex di Perl?
- 29. "barra prima di ogni preventivo" problema
- 30. Qual è il significato dei due punti nella dichiarazione qw?
È una buona funzione che hai dato un nome sfortunato ... – Dason