我有一个每日温度测量数据集,并想计算32°C以上的温度累积总和。我不想知道温度超过32 model = Network()
loaded_dict = checkpoint['model_state_dict']
prefix = 'classifier.'
n_clip = len(prefix)
adapted_dict = {k[n_clip:]: v for k, v in loaded_dict.items()
if k.startswith(prefix)}
model.load_state_dict(adapted_dict)
的天数,但会累积超过32的温度值。因此,如果温度为31,33,34,...,代码应计算0+ 1 + 2 + ...
sum(tmax_mean > 32)
我已经尝试过tmax_mean <- c(31.3,32.1,33.5,29,34.2)
,但这只能告诉我温度超过32°C的天数,在这种情况下为3天。
答案 0 :(得分:6)
我们可能会使用
sum((tmax_mean - 32)[tmax_mean > 32])
# [1] 3.8
这里tmax_mean > 32
有助于子集所需的术语,而在这些情况下,tmax_mean - 32
是我们的求和数。
还
sum((tmax_mean - 32) * (tmax_mean > 32))
# [1] 3.8
使用相同的逻辑以及number * TRUE
是number
和number * FALSE
是0
的事实:
3 * TRUE
# [1] 3
3 * FALSE
# [1] 0
以相同的方式,使用矩阵乘法%*%
(因为tmax_mean - 32
和tmax_mean > 32
都可以看作是向量),
(tmax_mean - 32) %*% (tmax_mean > 32)
# [,1]
# [1,] 3.8
现在是1x1矩阵,在您的情况下可能可接受,也可能不可接受。
答案 1 :(得分:0)
sum(subset(tmax_mean, tmax_mean > 32) - 32)