r中的条件求和

Conditional summation in r

我有一个包含 63 列和 1128 行的数据框。

列由weightsrep、lon lat、v1.....v60组成,其中v[i]代表降水数据。

我想创建一个向量 [1:60],其中包含 weightsrep 的总和,其中 v 不等于 0。

例如(将这些想象成列):

如果权重 rep = 0.2,0.3,0.2

和 v1 = 10,0,8

那么权重的总和 = 0.2+0.2

df <- data.frame(rep=c(0.2,0.3,0.2),
                 lon=c(35,36,37),
                 lat=c(-90,-91,-92),
                 v1=c(10,0,8),
                 v2=c(3,4,5),
                 v3=c(9,20,4))

v <- as.vector("numeric")
for(i in 1:3) v[i] <- sum(df$rep[df[,i+3]!=0])