R: Как удалить строки и добавить значение переменной в предыдущую строку в виде значения, разделенного запятыми?

r

44 просмотра

1 ответ

У меня есть набор данных следующим образом:

col1    col2
a        1
a        2
b        1
b        3
c        4

Я хочу вывод следующим образом:

col1    col2
a        1,2
b        1,3
c        4

Как это возможно в R?

Автор: Nadeem Hussain Источник Размещён: 12.11.2019 09:02

Ответы (1)


2 плюса

Решение

Мы можем сгруппировать по 'col1' и paste'col2' с collapse=','опцией. Удобная обертка была бы toString. Это может быть сделано с любым из агрегатов групповыми функциями. Например, с помощью data.tableмы преобразуем «data.frame» в «data.table» ( setDT(df1)) и используем логику, как описано выше

library(data.table)
setDT(df1)[, list(col2 = toString(col2)), by = col1]

Или с aggregateизbase R

aggregate(col2~col1, df1, FUN=toString)

Если вам нужен listвывод для 'col2'

aggregate(col2~col1, df1, FUN=I)

Или используя dplyr

library(dplyr)
df1 %>% 
     group_by(col1) %>% 
     summarise(col2= toString(col2))
Автор: akrun Размещён: 02.06.2015 01:10
Вопросы из категории :
32x32