私はこのようなdata.tableを有する:ベクトル化:ベクトルのベクトルの前に、すべての要素の集合の差異だけを設定するにはどうすればよいですか?
dt=data.table(freq=c(4,3,2,1),elements=list(c('a','b','c'),
c('a','d'),
c('b','d'),
c('b','d','c','e')))
freq elements
1: 4 a,b,c
2: 3 a,d
3: 2 b,d
4: 1 b,d,c,e
私はその行の要素とその行の前のセットのすべての要素の関節間の唯一のセットの差が、各行の要素を必要とします。そのようにして、私のようなものになるだろう:私はI-1までそのグループのすべての要素のためにこれを行うと、唯一の差集合を得ることができる
freq elements
1: 4 a,b,c
2: 3 d
3: 2 NA
4: 1 e
を私は実際にそれを行う方法を知りたいのですベクトル化された方法で、もし可能であれば。
ありがとう!
どのようにあなたが '手に入れました最後の行では? – akrun
また、ベクトル化されていないソリューションがある場合は、それは何ですか? – Justin
おそらく、各要素と累積組合の設定差異を見つけることができますか?例えば。 'Map(setdiff、dt $ elements、head(Reduce(union、dt $ elements、accumulate = TRUE、init = NULL)、-1L))' –