Apakah ada cara untuk mencetak teks dan konten variabel pada baris yang sama? Sebagai contoh,
wd <- getwd()
print("Current working dir: ", wd)
Saya tidak dapat menemukan apa pun tentang sintaks yang memungkinkan saya melakukan ini.
Apakah ada cara untuk mencetak teks dan konten variabel pada baris yang sama? Sebagai contoh,
wd <- getwd()
print("Current working dir: ", wd)
Saya tidak dapat menemukan apa pun tentang sintaks yang memungkinkan saya melakukan ini.
Jawaban:
Anda bisa menggunakannya paste
bersamaprint
print(paste0("Current working dir: ", wd))
atau cat
cat("Current working dir: ", wd)
cat()
saya mendapatkan NULL
di akhir :(
print(cat("test", var))
yang seharusnyacat("test", var)
{lem} menawarkan interpolasi string yang jauh lebih baik, lihat jawaban saya yang lain . Juga, seperti yang Dainis sebutkan,
sprintf()
bukan tanpa masalah.
Ada juga sprintf()
:
sprintf("Current working dir: %s", wd)
Untuk mencetak ke output konsol, gunakan cat()
atau message()
:
cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))
sprintf
tidak mencetak, itu hanya memformat string. Sesuatu seperti cetak (sprintf (...)) diperlukan di dalam skrip.
Atau menggunakan message
message("Current working dir: ", wd)
@ agstudy menjawab lebih cocok di sini
Cara termudah untuk melakukan ini adalah menggunakan paste()
> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"
paste0()
akan menghasilkan yang berikut:
> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"
Perhatikan tidak ada pemisah default antara string dan x. Menggunakan spasi di akhir string adalah perbaikan cepat:
> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"
Kemudian gabungkan kedua fungsi dengan print()
> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"
Atau
> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"
Seperti yang dinyatakan oleh pengguna lain, Anda juga bisa menggunakan cat()
Paket {lem} menawarkan interpolasi string. Dalam contoh ini, {wd}
diganti dengan isi variabel. Ekspresi kompleks juga didukung.
library(glue)
wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c
Dibuat pada 2019-05-13 oleh paket reprex (v0.2.1)
Perhatikan bagaimana hasil cetak tidak mengandung [1]
artefak dan "
tanda kutip, yang digunakan jawaban lain cat()
.
Seperti kata pengguna lain, cat () mungkin merupakan opsi terbaik.
@ krlmlr disarankan menggunakan sprintf () dan saat ini merupakan jawaban peringkat ketiga. sprintf () bukan ide yang baik. Dari dokumentasi R:
String format diturunkan fungsi sprintf OS, dan format yang salah dapat menyebabkan yang terakhir untuk crash proses R.
Tidak ada alasan bagus untuk menggunakan sprintf () di atas kucing atau opsi lain.
Anda dapat menggunakan metode paste0 atau cat untuk menggabungkan string dengan nilai variabel di R
Sebagai contoh:
paste0("Value of A : ", a)
cat("Value of A : ", a)
sep = ''
atau Anda akan mendapatkan ruang ekstra.