Saya memiliki vektor numerik, yang saya coba ubah menjadi vektor karakter di mana setiap elemen dipisahkan dengan koma.
> one = c(1:5)
> paste(as.character(one), collapse=", ")
[1] "1, 2, 3, 4, 5"
> paste(as.character(one), sep="' '", collapse=", ")
[1] "1, 2, 3, 4, 5"
Namun, saya ingin hasilnya terlihat seperti:
"1", "2", "3", "4", "5"
Apakah saya kehilangan beberapa parameter dari fungsi paste? Tolong!?
paste(shQuote(one), collapse=", ")
memberikan[1] "\"1\", \"2\", \"3\", \"4\", \"5\""
, bukan varian tertutup kutipan tunggal.Anda mengatakan Anda menginginkan vektor karakter dengan keluaran itu, tetapi orang lain yang menemukan pertanyaan ini mungkin mencari salah satu dari fungsi berikut:
Pertama, cara untuk menyiapkan keluaran untuk masukan ke R; itu akan menjadi
dput
:> dput(as.character(one)) c("1", "2", "3", "4", "5")
Kedua, cara untuk mengeluarkan file csv, yang akan menjadi
write.csv
atauwrite.table
. Fungsi-fungsi ini mengambil parameterfile
, tidak digunakan di sini, untuk secara langsung menampilkan file.> write.table(matrix(as.character(one),nrow=1), sep=",", row.names=FALSE, col.names=FALSE) "1","2","3","4","5" > write.csv(matrix(as.character(one),nrow=1),row.names=FALSE) "V1","V2","V3","V4","V5" "1","2","3","4","5"
sumber
Dengan asumsi Anda ingin output Anda dalam string karakter (sebagai lawan dari vektor karakter), Anda dapat mencoba:
paste("'",as.character(one),"'",collapse=", ",sep="")
Itu memberi Anda tanda kutip tunggal di sekitar angka daripada tanda kutip ganda, tetapi pada dasarnya itulah yang tampaknya Anda inginkan.
Dan Anda selalu dapat melarikan diri untuk mendapatkan tanda kutip ganda:
rs <- paste("\"",as.character(one),"\"",collapse=", ",sep="") cat(rs)
yang harus mencetak apa yang Anda inginkan dengan tanda kutip ganda.
sumber
Selain itu
shQuote
, lihat fungsisQuote
dandQuote
untuk membungkus teks dalam tanda kutip tunggal dan ganda. Anda juga ingin menyeteloptions(useFancyQuotes=FALSE)
agar mendapatkan tanda kutip ASCII biasa (searah).sumber
Sesuatu yang mirip dengan toString
toString(paste0("'",1:10,"'") )
sumber
Sekadar menambahkan jawaban Nuh jika Anda ingin menggunakan
paste
fungsi:paste(shQuote(one, type="sh"), collapse=", ")
Harus memberi Anda:
[1] '1','2','3','4','5'
sumber