我需要知道温度的几倍; 20&使用R在给定数据集'Tair'中交叉30

时间:2017-06-08 14:03:52

标签: r loops

这就是我所做的

maxT<-c(20,30)
Tair<-c(28.8,0,0,28.8,29.1,28.5,28.7,28.2,28.3,28.8,30.1,31.3,30.7,31.9,31.5,30.7,32,33,33,33.6,33.7,32.4,32.7,30.5,27.4,27.1,25.9,26.2,28.3,29.8,30.8,31.4,32)
dmx<-c(0)
 for (i in maxT)
 {
   for (j in Tair)
   {
     if(j>i){dmx=dmx+1}    
   }
   dmx
 }
}

当我运行上面给出的脚本时,它返回'dmax'的单个值,它是温度超过20和30的总和。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

如果你想计算20到30之间的观测数量(这不是很明显),这里有一个解决方案:

dmx <- sum(Tair>maxT[1] & Tair<maxT[2])

答案 1 :(得分:0)

dmx <- sapply(1:length(maxT), function(x) sum(Tair) >= maxT[x]))

这给了我:

31 17