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 paste
ileprint
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))
sprintf
yazdı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.