Tengo un vector numérico, uno, que estoy tratando de convertir en un vector de caracteres donde cada elemento está separado por comas.
> 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"
Sin embargo, quiero que la salida se vea así:
"1", "2", "3", "4", "5"
¿Me falta algún parámetro de la función de pegar? ¿¡Ayuda!?
paste(shQuote(one), collapse=", ")
da[1] "\"1\", \"2\", \"3\", \"4\", \"5\""
, no variante adjunta de comillas simples.Dice que quiere un vector de caracteres con esa salida, pero otros que encuentran esta pregunta pueden estar buscando una de estas funciones en su lugar:
Primero, una forma de preparar la salida para la entrada a R; eso sería
dput
:> dput(as.character(one)) c("1", "2", "3", "4", "5")
En segundo lugar, una forma de generar un archivo csv, que sería
write.csv
owrite.table
. Estas funciones toman un parámetrofile
, que no se usa aquí, para enviar directamente a un archivo.> 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"
fuente
Suponiendo que desea su salida en una cadena de caracteres (a diferencia de un vector de caracteres), podría intentar:
paste("'",as.character(one),"'",collapse=", ",sep="")
Eso le da comillas simples alrededor de los números en lugar de comillas dobles, pero es básicamente lo que parece querer.
Y siempre puedes escapar para obtener comillas dobles:
rs <- paste("\"",as.character(one),"\"",collapse=", ",sep="") cat(rs)
que debería imprimir lo que quieras con las comillas dobles.
fuente
Además
shQuote
, consulte las funcionessQuote
ydQuote
para ajustar el texto entre comillas simples y dobles respectivamente. También querrá configuraroptions(useFancyQuotes=FALSE)
para obtener comillas ASCII simples (unidireccionales).fuente
Algo similar con toString
toString(paste0("'",1:10,"'") )
fuente
Solo para agregar a la respuesta de Noah si desea usar la
paste
función:paste(shQuote(one, type="sh"), collapse=", ")
Debería darte:
[1] '1','2','3','4','5'
fuente