【问题标题】:chaining in data.table to compute row sum在 data.table 中链接以计算行总和
【发布时间】:2021-06-16 22:16:17
【问题描述】:

我有一个这样的转换后的 data.table:

name <- c("Bob","Mary","Jane","Kim")
weight <- c(60,65,45,55)
height <- c(170,165,140,135)
dft <- data.table(name,weight,height) 
dft <-  data.table (dft[,.(name)] ,     dft[, weight %*% t(weight)]) 
names(dft) <- c("name", str_c("tau",1:4))

现在我首先将tau12 = tau1 * tau2 相乘并计算所有五列的行总和,包括tau12

如果我使用

dft[,  `:=`(tau12 = tau1 * tau2, 
            sum1 = lapply(.SD, sum) ) , .SDcols = patterns("^tau")  ]
 

但是,sum1 仅计算四列的总和,不包括 tau12 列。

我想知道在这种情况下如何计算总和 tau1+tau2+tau3+tau4+tau12?这与dplyr::mutate的做法不同,新生成的变量可以参与后续操作。

【问题讨论】:

标签: r dplyr data.table tidyverse


【解决方案1】:

这样的?

> dft[, tau12 := tau1 * tau2][, .(rowS = rowSums(.SD)), name, .SDcols = patterns("^tau")]       
   name     rowS
1:  Bob 14053500
2: Mary 16492125
3: Jane  7907625
4:  Kim 11809875

【讨论】:

    猜你喜欢
    • 2022-07-06
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    相关资源
    最近更新 更多