2012-11-07 21 views
23

Vorrei conservare questa uscita in una stringa:valori numerici Concatena in una stringa

> x=1:5 
> cat("hi",x) 
hi 1 2 3 4 5 

per cui uso paste, ma io ottenere questo risultato diverso:

> paste("hi",x) 
[1] "hi 1" "hi 2" "hi 3" "hi 4" "hi 5" 

Qualsiasi idea di come ottenere la stringa:

"hi 1 2 3 4 5" 

Grazie mille!

risposta

39

È possibile forzare la coercizione al carattere per x concatenando la stringa "hi" a x. Quindi utilizzare solo paste() con l'argomento collapse. Come in

x <- 1:5 
paste(c("hi", x), collapse = " ") 

> paste(c("hi", x), collapse = " ") 
[1] "hi 1 2 3 4 5" 
9

Si potrebbe usare capture.output con il gatto

capture.output(cat('hi',x)) 
[1] "hi 1 2 3 4 5" 
4

si utilizza sprintf:

> x=1:5 
> str=sprintf("hi %d",x) 
> str 
[1] "hi 1" "hi 2" "hi 3" "hi 4" "hi 5" 
> 
Problemi correlati