Aynı satıra metin ve değişken içerik yazdırmanın bir yolu var mı? Örneğin,
wd <- getwd()
print("Current working dir: ", wd)
Söz dizimi hakkında bunu yapmama izin verecek hiçbir şey bulamadım.
Aynı satıra metin ve değişken içerik yazdırmanın bir yolu var mı? Örneğin,
wd <- getwd()
print("Current working dir: ", wd)
Söz dizimi hakkında bunu yapmama izin verecek hiçbir şey bulamadım.
Yanıtlar:
Sen kullanabilirsiniz pasteileprint
print(paste0("Current working dir: ", wd))
veya cat
cat("Current working dir: ", wd)
cat()Şey alabilir NULL:( sonunda
print(cat("test", var)) olması gerekencat("test", var)
{glue} çok daha iyi dize enterpolasyonu sunuyor, diğer cevabımı görün . Ayrıca, Dainis'in haklı olarak belirttiği gibi,
sprintf()problemsiz değildir.
Ayrıca sprintf():
sprintf("Current working dir: %s", wd)
Konsol çıkışına yazdırmak için cat()veya tuşunu kullanın message():
cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))
sprintfyazdırmıyor, sadece dize biçimlendirir. Betiklerin içinde print (sprintf (...)) gibi bir şey gereklidir.
Veya kullanarak message
message("Current working dir: ", wd)
@ agstudy'nin cevabı burada daha uygun
Bunu yapmanın en kolay yolu paste()
> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"
paste0() aşağıdakilerle sonuçlanır:
> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"
Dize ve x arasında varsayılan ayırıcı olmadığına dikkat edin. Dizenin sonunda bir boşluk kullanmak hızlı bir çözümdür:
> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"
Sonra her iki işlevi de print()
> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"
Veya
> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"
Diğer kullanıcıların belirttiği gibi, cat()
{Tutkal} paket dize interpolasyon sunuyor. Örnekte, {wd}değişkenin içeriği ile ikame edilmiştir. Karmaşık ifadeler de desteklenir.
library(glue)
wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c
2019-05-13 tarihinde reprex paketi tarafından oluşturuldu (v0.2.1)
Yazdırılan çıktının, diğer yanıtların kullandığı [1]artefaktları ve "alıntıları nasıl içermediğine dikkat edin cat().
Diğer kullanıcıların söylediği gibi, cat () muhtemelen en iyi seçenektir.
@krlmlr sprintf () kullanılmasını önerdi ve şu anda üçüncü sırada yer alan cevap. sprintf () iyi bir fikir değildir. R belgelerinden:
Biçim dizesi işletim sisteminin sprintf işlevinden geçirilir ve yanlış biçimler ikincisinin R sürecini kilitlemesine neden olabilir.
Sprintf () işlevini kedi veya diğer seçenekler üzerinde kullanmak için iyi bir neden yoktur.
sep = ''veya fazladan bir alan elde edersiniz.