Est-il possible d’imprimer du texte et du contenu variable sur la même ligne? Par exemple,
wd <- getwd()
print("Current working dir: ", wd)
Je n'ai rien trouvé sur la syntaxe qui me permettrait de le faire.
Vous pouvez utiliser paste
avec print
print(paste0("Current working dir: ", wd))
ou cat
cat("Current working dir: ", wd)
Il y a aussi sprintf()
:
sprintf("Current working dir: %s", wd)
Pour imprimer sur la sortie de la console, utilisez cat()
ou message()
:
cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))
Ou en utilisant message
message("Current working dir: ", wd)
La réponse de @ agstudy est la plus appropriée ici
Pour ce faire, le plus simple consiste à utiliser paste()
> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"
paste0()
donnerait ce qui suit:
> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"
Notez qu'il n'y a pas de séparateur par défaut entre la chaîne et x. Utiliser un espace à la fin de la chaîne est une solution rapide:
> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"
Puis combinez l'une des fonctions avec print()
> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"
Ou
> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"
Comme d'autres utilisateurs l'ont déjà indiqué, vous pouvez également utiliser cat()
Le paquet {glue} offre une interpolation de chaîne. Dans l'exemple, {wd}
est remplacé par le contenu de la variable. Les expressions complexes sont également prises en charge.
library(glue)
wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c
Créé le 2019-05-13 par le paquet reprex (v0.2.1)
Notez que la sortie imprimée ne contient pas les artefacts [1]
et les guillemets "
, pour lesquels les autres réponses utilisent cat()
.
Comme d'autres utilisateurs l'ont dit, cat () est probablement la meilleure option.
@krlmlr a suggéré d'utiliser sprintf () et c'est actuellement la réponse classée au troisième rang. sprintf () n'est pas une bonne idée. De la documentation R:
La chaîne de formatage est transmise à la fonction sprintf du système d'exploitation. Des formats incorrects peuvent entraîner le blocage du processus R.
Il n'y a pas de bonne raison d'utiliser sprintf () sur chat ou d'autres options.
vous pouvez utiliser la méthode paste0 ou cat pour combiner chaîne avec des valeurs variables dans R
Par exemple:
paste0("Value of A : ", a)
cat("Value of A : ", a)