如何在不使用管道的情况下将 dcast 引入 data.table 链?

Gre*_*001 3 r data.table

data.table 使用链式规则优雅而直观。一切都像机器一样排列整齐。但有时我们不得不引入一些像dcast或熔化这样的操作。如何将所有操作集成到[]? 我承认,仅仅是因为它更优雅。

DT <- data.table(A = rep(letters[1:3],4), B = rep(1:4,3), C = rep(c("OK", "NG"),6))
DT.1 <- DT[,.N, by = .(B,C)] %>% dcast(B~C)
DT.2 <- DT.1[,.N, by = .(NG)]
#   NG N
#1: NA 2
#2:  3 2

#same
DT <- data.table(A = rep(letters[1:3],4), B = rep(1:4,3), C = rep(c("OK", "NG"),6))[,.N, by = .(B, C)] %>% 
dcast(B~C) %>% .[,.N, by =.(NG)]
Run Code Online (Sandbox Code Playgroud)

我可以删除%>%并集成到 中[]吗?谢谢

sin*_*dur 6

.SD为此使用怎么样:

DT[, .N, by = .(B, C)
   ][, dcast(.SD, B ~ C)
     ][, .N, by = .(NG)]

   NG N
1: NA 2
2:  3 2
Run Code Online (Sandbox Code Playgroud)