Is er een manier om tekst en variabele inhoud op dezelfde regel af te drukken? Bijvoorbeeld,
wd <- getwd()
print("Current working dir: ", wd)
Ik kon niets vinden over de syntaxis waarmee ik dit zou kunnen doen.
Antwoord 1, autoriteit 100%
Je kunt paste
gebruiken met print
print(paste0("Current working dir: ", wd))
of cat
cat("Current working dir: ", wd)
Antwoord 2, autoriteit 20%
{glue} biedt veel betere string-interpolatie, zie mijn andere antwoord. Ook, zoals Dainis terecht vermeldt, is
sprintf()
niet zonder problemen.
Er is ook sprintf()
:
sprintf("Current working dir: %s", wd)
Gebruik cat()
of message()
om af te drukken naar de console-uitvoer:
cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))
Antwoord 3, autoriteit 7%
Of gebruik message
message("Current working dir: ", wd)
Het antwoord van @agstudy is hier het meest geschikt
Antwoord 4, autoriteit 5%
De eenvoudigste manier om dit te doen is door paste()
. te gebruiken
> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"
paste0()
zou resulteren in het volgende:
> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"
Merk op dat er geen standaard scheidingsteken is tussen de tekenreeks en x. Het gebruik van een spatie aan het einde van de string is een snelle oplossing:
> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"
Combineer vervolgens beide functies met print()
> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"
Of
> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"
Zoals andere gebruikers hebben aangegeven, kunt u ook cat()
. gebruiken
Antwoord 5, autoriteit 4%
Het {glue}-pakketbiedt string-interpolatie. In het voorbeeld wordt {wd}
vervangen door de inhoud van de variabele. Complexe uitdrukkingen worden ook ondersteund.
library(glue)
wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c
Gemaakt op 13-05-2019 door het reprex-pakket(v0.2.1)
Merk op dat de afgedrukte uitvoer niet de [1]
-artefacten en de "
-aanhalingstekens bevat, waarvoor andere antwoorden cat()
.
Antwoord 6, autoriteit 2%
Zoals andere gebruikers al zeiden, is cat() waarschijnlijk de beste optie.
@Krlmlr suggereerde het gebruik van Sprintf () en het is momenteel het derde gerangschikte antwoord. Sprintf () is geen goed idee. Van R-documentatie:
De opmaakstring wordt doorgegeven aan de Sprintf-functie van het OS en onjuiste indelingen kunnen ervoor zorgen dat de laatste het R-proces crasht.
Er is geen goede reden om Sprintf () over kat of andere opties te gebruiken.
Antwoord 7
U kunt PAST0- of CAT-methode gebruiken om tekenreeks te combineren met variabele waarden in R
Bijvoorbeeld:
paste0("Value of A : ", a)
cat("Value of A : ", a)
Antwoord 8
Een truc zou zijn om uw stuk code op te nemen in ()
als deze:
(wd <- getwd())
Wat betekent dat de huidige werkdirectory is toegewezen aan wd
en vervolgens afgedrukt.