簡體   English   中英

data.table按J中定義的列進行子集化

[英]data.table subsetting by a column defined in J

我想基於我在j參數中創建的列來對data.table進行子集化。 我假設這是不可能的,因為我得到“eval中的錯誤(expr,envir,enclos):找不到對象'suma'”(下面的示例),但也許有一種解決方法。 有什么建議么?

謝謝,

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

解決方法是在單獨的操作中創建列后進行過濾。 data.table這可以使用[鏈接到上一操作的結尾

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM