У меня есть числовой вектор, один, который я пытаюсь превратить в вектор символов, где каждый элемент разделен запятыми.
> 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"
Однако я хочу, чтобы результат выглядел так:
"1", "2", "3", "4", "5"
Мне не хватает какого-то параметра в функции вставки? Помогите!?
paste(shQuote(one), collapse=", ")
дает[1] "\"1\", \"2\", \"3\", \"4\", \"5\""
, не заключенный в одинарную кавычку вариант.Вы говорите, что хотите получить вектор символов с этим выводом, но другие, кто найдет этот вопрос, могут вместо этого искать одну из этих функций:
Во-первых, способ подготовить вывод для ввода в R; это будет
dput
:> dput(as.character(one)) c("1", "2", "3", "4", "5")
Во-вторых, способ вывода файла csv, который может быть
write.csv
илиwrite.table
. Эти функции принимают параметр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"
источник
Предполагая, что вам нужен вывод в виде символьной строки (в отличие от вектора символов), вы можете попробовать:
paste("'",as.character(one),"'",collapse=", ",sep="")
Это дает вам одинарные кавычки вокруг чисел, а не двойные кавычки, но в основном это то, что вам нужно.
И вы всегда можете избежать двойных кавычек:
rs <- paste("\"",as.character(one),"\"",collapse=", ",sep="") cat(rs)
это должно распечатать то, что вы хотите, с двойными кавычками.
источник
В дополнение к
shQuote
функциямsQuote
иdQuote
для заключения текста в одинарные и двойные кавычки соответственно. Вы также захотите установитьoptions(useFancyQuotes=FALSE)
для получения простых (однонаправленных) кавычек ASCII.источник
Что-то подобное с toString
toString(paste0("'",1:10,"'") )
источник
Просто чтобы добавить к ответу Ноя, если вы хотите использовать
paste
функцию:paste(shQuote(one, type="sh"), collapse=", ")
Должен дать вам:
[1] '1','2','3','4','5'
источник