Программирование R: Автоматизация слияния строк символов - PullRequest
2 голосов
/ 13 октября 2010

Я пытаюсь автоматизировать некоторые из работающих здесь систем специально для создания отчетов на основе данных опросов.

Допустим, у меня есть 3 комментария на 1 вопрос.

current_comments <- c("too slow", "not fast enough", "bad speed")

По сути, я хочу объединить комментарии в одну строку, разделенную знаком "-", тоже похожим на это

>current_comments
[1] "too slow - not fast enough - bad speed"

Чтобы я мог вставить его в одну ячейку для экспорта.

Я знаю, что могу сделать это с помощью функции вставки.

> paste(current_comments[1], " - ", current_comments[2], " - ", current_comments[3])
[1] "too slow  -  not fast enough  -  bad speed"

Но изс точки зрения автоматизации, как мне сделать это с различным количеством комментариев.

Извините за вопрос новичка, но это поставило меня в тупик на лучшую часть дня.

edit: по запросу heresdput(head(clean_data, 10)) с измененными именами и вопросами

ture(list(res_qnumber = 1:10, res_ID = c(44024431L, 44024431L, 
44024431L, 44024431L, 44024431L, 44024431L, 44024431L, 44024431L, 
44024431L, 44024431L), res_name = c("name1", "name1", 
"name1", "name1", "name1", "name1", "name1", 
"name1", "name1", "name1"), res_pos = c("NA", 
"NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"), res_ceo = c(FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
), res_qtype = c("standard", "standard", "standard", "standard", 
"standard", "standard", "standard", "standard", "standard", "standard"
), res_qtext = c("Question1", 
"Question2", 
"Question3", 
"Question4", 
"Question5", 
"Question6", 
"Question7", 
"Question8", 
"Question9"
), res_response = c("2", "5", "5", "5", "5", "5", "5", "5", "5", 
"5"), res_comment = c("too slow", NA_character_, NA_character_, 
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, 
NA_character_, NA_character_), res_scale = c("scale1", "scale2", 
"scale3", "scale4", "scale5", "scale6", "scale7", "scale8", "scale9", 
"scale10")), .Names = c("res_qnumber", "res_ID", "res_name", 
"res_pos", "res_ceo", "res_qtype", "res_qtext", "res_response", 
"res_comment", "res_scale"), row.names = c(NA, 10L), class = "data.frame")

1 Ответ

7 голосов
/ 13 октября 2010
paste(current_comments, collapse=" - ")
...