Создание вектора, разделенного запятыми

У меня есть числовой вектор, один, который я пытаюсь превратить в вектор символов, где каждый элемент разделяется запятыми.

> 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" 

Я пропустил какой-то параметр из функции вставки? Помогите!?

shQuote , вероятно, лучший способ сделать это. В частности, это дает вам необходимый результат:

 cat(paste(shQuote(one, type="cmd"), collapse=", ")) 

Если одинарные кавычки в порядке, вы можете использовать:

 paste(shQuote(one), collapse=", ") 

type="cmd" самом деле предоставляет экранированные кавычки, что действительно полезно для большинства контекстов, но если вы действительно хотите отобразить его где-то с невыпадающими кавычками, cat предоставляет это.

Вы говорите, что вам нужен вектор символов с этим выходом, но другие, кто найдет этот вопрос, могут искать одну из этих функций:

Во-первых, способ получения вывода, готового для ввода в 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.

Просто добавьте к ответу Ноя, если вы хотите использовать функцию paste :

 paste(shQuote(one, type="sh"), collapse=", ") 

Должен дать вам:

 [1] '1','2','3','4','5' 
  • Отменить список фреймов данных
  • Вычисление суммарной суммы для каждой строки
  • R подавляет запуск сообщений от зависимости
  • Скомпилировать R-скрипт в автономный .exe-файл?
  • Эффективно конвертировать обратную косую черту в косую черту в R
  • Создать имя переменной с «вставкой» в R?
  • как вы отправляете письмо от R
  • Определить все объекты данного classа для дальнейшей обработки
  • Перемещение столбцов в data.frame () без повторного набора
  • Разница между `% in%` и `==`
  • Альтернатива expand.grid для data.frames
  • Давайте будем гением компьютера.