我正在尝试计算矩阵每一行中有多少个值大于指定值。非常抱歉我要问这么简单的问题,但是我无法弄清楚。
我从一个栅格堆栈中提取了多年的最大温度值,针对我感兴趣的某些空间点。数据看起来类似于:
data <- cbind('1990' = c(25, 22, 35, 42, 44), '1991' = c(23, 28, 33, 40, 45), '1992' = c(20, 20, 30, 41, 43))
1990 1991 1992
1 25 23 20
2 22 28 20
3 35 33 30
4 42 40 41
5 44 45 43
我希望得到每个地点高于30度的年数,例如:
yr.above
1 0
2 0
3 2
4 3
5 3
我已经尝试了一些方法,但它们都不起作用并且相当不合逻辑(例如,尝试length(data[1:length(data), which(blah blah无法理解),或使用apply(data,1,length(data)>30)。我知道这些没有意义,但我有点卡住了。
cbind
确实会给出一个矩阵,但问题中打印的数据表明是一个data.frame
。我已经进行了编辑以解决这两种可能性。 - flodeldata > 30
返回一个由TRUE和FALSE组成的矩阵。当你在该矩阵上应用rowSums
时,TRUE和FALSE分别被转换为1和0。 - flodel