次のような data.table があります。
a <- data.table(color=c("Red","Blue","Red","Green","Red","Blue","Blue"), count=c(1,2,6,4,2,1,1),include=c(1,1,1,1,0,0,1))
> a
color count include
[1,] Red 1 1
[2,] Blue 2 1
[3,] Red 6 1
[4,] Green 4 1
[5,] Red 2 0
[6,] Blue 1 0
[7,] Blue 1 1
以下のように、一意の色の値と、include=1 に一致するそれぞれのカウント列の合計のみを持つ新しい data.table を作成したいと考えています。
colour total
[1,] Red 7
[2,] Blue 2
[3,] Green 4
過去にいくつかの成功を収めた次のことを試しました。
> a[,include == 1,list(total=sum(count)),by=colour]
Error in `[.data.table`(a, , include == 1, list(quantity = sum(count)), :
Provide either 'by' or 'keyby' but not both
a
がキーを持っていない場合、および のキーを持っている場合、この同じエラー メッセージが表示されますcolour
。colour
キーを に設定して、次のことも試しました。
> a[,include == 1,list(quantity=sum(count))]
Error in `[.data.table`(a, , include == 1, list(quantity = sum(count))) :
Each item in the 'by' or 'keyby' list must be same length as rows in x (7): 1
他に良い解決策が見つかりません。どんな助けでも大歓迎です。