我有一个矩阵,有很多行,只有两个成对的列.我想计算第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循环不会非常有效.
我正在尝试编写一个函数,它将根据前两列中的值对数据帧中的列求和.例如,我有一个矩阵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)
但问题是,我必须定义不修复的列的名称.所以,我想知道如何在不定义列名的情况下这样做.提前致谢!