236 votes

Imprimer les contenus des chaînes et des variables sur la même ligne en R

Existe-t-il un moyen d'imprimer le texte et le contenu des variables sur la même ligne ? Par exemple,

wd <- getwd()
print("Current working dir: ", wd)

Je n'ai rien trouvé dans la syntaxe qui me permette de faire cela.

359voto

agstudy Points 55104

Vous pouvez utiliser paste con print

print(paste0("Current working dir: ", wd))

o cat

cat("Current working dir: ", wd)

74voto

krlmlr Points 5572

{glue} offre une bien meilleure interpolation des chaînes de caractères, voir mon autre réponse . Par ailleurs, comme le mentionne à juste titre Dainis, sprintf() n'est pas sans poser de problèmes.

Il y a aussi sprintf() :

sprintf("Current working dir: %s", wd)

Pour imprimer sur la console, utilisez cat() ou message() :

cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))

27voto

Jilber Points 22709

Ou en utilisant message

message("Current working dir: ", wd)

La réponse de @agstudy est la plus appropriée ici

21voto

user1526693 Points 221

La manière la plus simple d'y parvenir est d'utiliser paste()

> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"

paste0() aboutirait à ce qui suit :

> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"

Remarquez qu'il n'y a pas de séparateur par défaut entre la chaîne et x. L'utilisation d'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"

Combinez ensuite l'une ou l'autre de ces 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 indiqué, vous pouvez également utiliser cat()

15voto

krlmlr Points 5572

En Paquet de {collage} offre une interpolation des chaînes de caractères. 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 l'élément [1] les artefacts et les " citations, pour lesquelles d'autres réponses utilisent cat() .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X