8

customerid とリストを含むデータ フレームがあります。同じ顧客に関するリストを統合したいと考えています。

library(plyr)
subsets <- list(c("a", "d", "e"), c("a", "b", "c", "e"))
customerids <- c(1,1)
transactions <- data.frame(customerid = customerids,subset =I(subsets))
> transactions
  customerid     subset
1          1    a, d, e
2          1 a, b, c, e

サブセットを ddply とマージしたい場合は、拡張された結果が得られます

> ddply(transactions, .(customerid), summarise, subset=Reduce(union,subset))
  customerid subset
1          1   a
2          1   d
3          1   e
4          1   b
5          1   c

私はすべての結果を1行で期待していたでしょう。

4

1 に答える 1

4

次のようなことができます。

ddply(transactions, .(customerid), function(x) 
            data.frame(subset=I(list(unlist(x$subset)))))

編集:あなたのコメントに従っているかどうかわかりません。customeridただし、各for内で一意の値のみが必要な場合は、次のようにしますsubset

ddply(transactions, .(customerid), function(x) 
            data.frame(subset=I(list(unique(unlist(x$subset))))))
于 2013-07-15T21:30:04.213 に答える