2016-07-15 73 views
-5

我有一個63列和1128行的數據框。r中的條件求和

該列由weightrep,lon lat,v1 ..... v60組成,其中v [i]代表降水數據。

我想建立一個向量[1:60]含有weightsrep的總和,其中v爲不等於0

例如(想像這些爲列):

如果權重代表= 0.2,0.3,0.2

和V1 = 10,0,8

然後weightreps的總和= 0.2 + 0.2

+1

您可以使用正常的R子集,如'sum(df $ weightsrep [!(df $ v == 0)])' –

+0

提供了可重現的示例。 –

回答

1
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])