r中的条件求和

时间:2016-07-15 17:59:57

标签: r sum conditional

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

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

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

例如(将这些视为列):

如果权重rep = 0.2,0.3,0.2

和v1 = 10,0,8

然后权重总和= 0.2 + 0.2

1 个答案:

答案 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])