小编jsi*_*sin的帖子

大量行之间的差异

我有一个矩阵,有很多行,只有两个成对的列.我想计算第1列中每行之间的差异,如果差异小于预定义值(.001),则计算两列中这些行的平均值.例如,我有一个称为权重的矩阵,

  A      B
185.0765 10
185.3171 20
186.0777 30
186.0780 40
188.0078 50

weights<-as.data.table(weights)
bins<-weights[A %between% c(A[3],(A[3]+.001))]
meanA<-mean(bins$A)
meanB<-mean(bins$B)
Run Code Online (Sandbox Code Playgroud)

并且得到的矩阵将是,

  A      B
185.0765 10
185.3171 20
186.0779 35
188.0078 50
Run Code Online (Sandbox Code Playgroud)

如果有人可以建议我如何为大量行做这件事,我将感激不尽.我认为使用for循环不会非常有效.

r data.table

4
推荐指数
1
解决办法
470
查看次数

求和多列

我正在尝试编写一个函数,它将根据前两列中的值对数据帧中的列求和.例如,我有一个矩阵M,

Crs gr  P_7 P_8      
38  1   3   16
38  1   12  45
38  1   9   28
40  2   3   9
40  2   14  29
40  1   4   3
40  2   8   2
Run Code Online (Sandbox Code Playgroud)

我想首先根据column1(crs)和column2(gr)对列进行求和.结果将是,

    Crs gr  P_7  P_8      
    38  1   24  89
    40  2   25  40
    40  1   4   3
Run Code Online (Sandbox Code Playgroud)

目前我正在使用,

M <- M[, list(sum(P_7),sum(P_8)), by=list(Crs,gr)]
Run Code Online (Sandbox Code Playgroud)

但问题是,我必须定义不修复的列的名称.所以,我想知道如何在不定义列名的情况下这样做.提前致谢!

r data.table

0
推荐指数
2
解决办法
756
查看次数

标签 统计

data.table ×2

r ×2