2016-12-12 3 views
1

j引数で作成した列に基づいてdata.tableをサブセット化したいと考えています。私はこれが可能ではないと仮定していますが、 "eval(expr、envir、enclos)のエラー:オブジェクト 'suma' not found"(下の例)があります。助言がありますか?data.table Jで定義された列によるサブセット化

あなたは別の操作で列を作成した後、それを回避する方法は、フィルタリングを行うことです

test <- data.table(A = c('a','b','c'), B = rep(c(1,2,3),4), C = c('typ1','typ2')) 

head(test) 
    A B C 
1: a 1 typ1 
2: b 2 typ2 
3: c 3 typ1 
4: a 1 typ2 
5: b 2 typ1 
6: c 3 typ2 

test[ suma > 4 , .(suma = sum(B)) , by = .(A,C)] 

Error in eval(expr, envir, enclos) : object 'suma' not found 
+2

を使用して前の操作の最後までに連鎖することができあなたがあなたのやり方で行うことができない理由である 'j'を計算する。いくつかのチュートリアルについては、Webサイトの「はじめに」ページを参照してください。http://r-datatable.com – Frank

+0

参考までに、http://stackoverflow.com/questions/36292702/data-table-dti-jの複製の種類-by-does-select-select-groups-using-iを使用しています(FRがhttps://github.com/Rdatatable/data.table/に応じて未回答のため、詐称としてマークすることはできません)。問題/ 788)。 – Frank

答えて

3

、ありがとうございました。 data.tableでは、これはby`前 ``によって、将来の参考のためにDT [I、Jによる] `` i`によってフィルタまず、次いで基[

test[ , .(suma = sum(B)) , by = .(A,C)][suma > 4] 
# A C suma 
# 1: c typ1 6 
# 2: c typ2 6 
関連する問題