2016-07-15 75 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])