Агрегированные символьные / строковые переменные

У меня есть фрейм данных, в котором есть список ссылок на людей, а затем сделка, каждая ссылка на человека может иметь несколько сделок. Я хочу объединить, чтобы он отображал данные, как показано ниже:

Record Person Ref       Trade Code
1        512       elec, plumbing, gas
2        654            gas, plumbing
3        685              elec

И так далее.

Код, который у меня есть на данный момент:

TEST<-aggregate(`Trade Code`~`Person Reference`, df, function(test)
      paste(names(table(test)[rank(-1*table(test),ties.method="min")==1],collapse=NULL))

Который дает ошибку:

> Error: unexpected symbol in: "TEST<-aggregate('Trade Code'~'Person
> Reference', age_arr, function(test)
> paste(names(table(test)[rank(-1*table(test),ties.method="min")==1],collapse=NULL))
> View"

Кто-нибудь может увидеть, где я иду с этим не так?

1 ответ

Решение

Вы могли бы сделать это с dplyr а также toString:

df <- read.table(text="Record Person_Ref Trade_Code
1        512       elec
1        512       plumbing
1        512       gas
2        654       gas
2        654       plumbing
3        685       elec",header=TRUE,stringsAsFactors=FALSE)

df%>%
group_by(Record,Person_Ref) %>%
summarise(catY = toString(Trade_Code))

  Record Person_Ref                catY
   <int>      <int>               <chr>
1      1        512 elec, plumbing, gas
2      2        654       gas, plumbing
3      3        685                elec   
Другие вопросы по тегам