进行循环并将结果存储在矩阵中

时间:2019-10-03 10:03:03

标签: r

我在R中有一个数据帧,该数据帧由强度值(奇数列)和每个bin的像素数(偶数列)组成。我想对第1列的值在某个范围内(合并)对第2列的值求和。 奇数列的值是0-5000,我想将它们分成200个bin。

为此,我想到了检查第1列是否在我想要的范围内,将true / false结果转换为数值,然后乘以第2列并求和;它给了我想要的数字。代码如下:

bin_height = as.numeric(g11_6[,1] >= 200 & g11_6[,1] < 400)*g11_6[,2]
sum(bin_height)

现在我想做一个循环,以便R计算每个bin的结果(400-600、600-800 ...) 我该如何为此编写循环?

我尝试过:

for (k in 1:25){
bin_height = as.numeric(g11_6[,1] >= 200*(k-1) & g11_6[,1] < 200*k)*g11_6[,2]
sum(bin_height
}

但是它什么也没做(也不给出错误)...如何获取每个bin的结果?

1 个答案:

答案 0 :(得分:0)

您需要在某个地方存储结果。

results <- numeric(25)
for (k in 1:25){
bin_height <- as.numeric(g11_6[,1] >= 200*(k-1) & g11_6[,1] < 200*k)*g11_6[,2]
results[k] <- sum(bin_height)
}

然后,您应该在results向量中拥有所有想要的信息。