Plyr для простого группового - PullRequest
1 голос
/ 18 октября 2011

Я получаю данные из таблицы MySQL, которая имеет 2 столбца (idDoc, тег), описывающих, что документ имеет данный тег.Когда я использую фрейм данных с

ddply(tags,1)

Моя цель состоит в том, чтобы сгруппировать теги по идентификатору, поэтому, скажем, я делаю следующие шаги

> x=c(1,1,2,2)
> y=c(4,5,6,7)
> data.frame(x,y)
  x y
1 1 4
2 1 5
3 2 6
4 2 7

Мой желаемый результат будет, возможно, списоксписки (или любой другой результат), который получил бы

 1 -> c(4,5)
 2 -> c(6,7)

С уважением

1 Ответ

2 голосов
/ 18 октября 2011

Это своего рода выстрел в темноте, поскольку, когда вы говорите, что хотите «ассоциацию», это не совсем точно описывает какую-либо конкретную структуру данных R, поэтому неясно, какую форму вы хотите получить, чтобы получить вывод.

Но одной базовой возможностью R было бы просто использовать split:

split(tags$tag, tags$idDoc)

, который должен возвращать именованный список, в котором имена берутся из idDoc, а каждый элемент списка - это связанные теги.с этим idDoc значением.Будут дубликаты, хотя.Так что, возможно, это будет работать лучше:

tapply(tags$tag,tags$idDoc,FUN = unique)

, который должен возвращать список уникальных тегов для каждого idDoc.

( Edited : Анонимная функция не нужна, нужно только передать unique).

...