Esiste un modo per stampare testo e contenuti variabili sulla stessa riga? Per esempio,
wd <- getwd()
print("Current working dir: ", wd)
Non sono riuscito a trovare nulla sulla sintassi che mi permettesse di farlo.
Esiste un modo per stampare testo e contenuti variabili sulla stessa riga? Per esempio,
wd <- getwd()
print("Current working dir: ", wd)
Non sono riuscito a trovare nulla sulla sintassi che mi permettesse di farlo.
Risposte:
Puoi usarlo paste
conprint
print(paste0("Current working dir: ", wd))
o cat
cat("Current working dir: ", wd)
cat()
ottengo un NULL
alla fine :(
print(cat("test", var))
quale dovrebbe esserecat("test", var)
{colla} offre una migliore interpolazione delle stringhe, vedi la mia altra risposta . Inoltre, come giustamente afferma Dainis,
sprintf()
non è privo di problemi.
C'è anche sprintf()
:
sprintf("Current working dir: %s", wd)
Per stampare sull'output della console, utilizzare cat()
o message()
:
cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))
sprintf
non stampa, ma semplicemente formatta la stringa. Qualcosa come print (sprintf (...)) è necessario all'interno degli script.
O usando message
message("Current working dir: ", wd)
La risposta di @ agstudy è la più adatta qui
Il modo più semplice per farlo è usare paste()
> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"
paste0()
comporterebbe quanto segue:
> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"
Si noti che non esiste un separatore predefinito tra la stringa e x. L'uso di uno spazio alla fine della stringa è una soluzione rapida:
> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"
Quindi combinare entrambe le funzioni con print()
> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"
O
> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"
Come altri utenti hanno affermato, è possibile utilizzare anche cat()
Il pacchetto {colla} offre interpolazione di stringhe. Nell'esempio, {wd}
viene sostituito con il contenuto della variabile. Sono supportate anche espressioni complesse.
library(glue)
wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c
Creato il 13/05/2019 dal pacchetto reprex (v0.2.1)
Nota come l'output stampato non contiene gli [1]
artefatti e le "
virgolette, per le quali utilizzano altre risposte cat()
.
Come altri utenti hanno detto, cat () è probabilmente l'opzione migliore.
@krlmlr ha suggerito di usare sprintf () ed è attualmente la terza risposta classificata. sprintf () non è una buona idea. Dalla documentazione R:
La stringa di formato viene trasmessa alla funzione sprintf del sistema operativo e formati errati possono causare il blocco del processo R da parte di quest'ultimo.
Non ci sono buoni motivi per usare sprintf () su cat o altre opzioni.
sep = ''
o avrai uno spazio extra.