Агрегированные символьные / строковые переменные
У меня есть фрейм данных, в котором есть список ссылок на людей, а затем сделка, каждая ссылка на человека может иметь несколько сделок. Я хочу объединить, чтобы он отображал данные, как показано ниже:
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