You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R data.table单元格中存储均值向量与协方差矩阵

正确实现代码
library(data.table)

set.seed(42)
a <- sample(1:3, 10, TRUE)
b <- rnorm(10)
d <- rpois(10, 3)
data <- data.table(a, b, d)
bd <- c("b", "d")

dat <- data[, 
            .(mu = list(colMeans(.SD)), 
              sigma = list(cov(.SD))), 
            by = a,
            .SDcols = bd]
关键修改说明
  • .SDcols = bd指定当前分组操作仅作用于bd存储的两列数值特征,完全符合「仅通过存储列名的对象调用相关列」的要求
  • colMeans(.SD)会直接生成长度为2的均值向量,用list()包裹后会作为列表元素存入单元格,不会被自动拆分为多列
  • cov(.SD)直接对分组后的两列数值计算2×2协方差矩阵,同样用list()包裹为列表列存储
结果验证

你可以通过以下方式确认输出符合预期:

  • 查看行数:nrow(dat)返回3,对应a的3个取值
  • 查看均值列:dat$mu是长度为3的列表,每个元素是长度为2的数值向量
  • 查看协方差列:dat$sigma是长度为3的列表,每个元素是2行2列的矩阵

内容的提问来源于stack exchange,提问作者Fire Salamander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:18:02