从r中的数据帧获得前两个非零值的比率

时间:2017-01-30 12:25:12

标签: r dataframe sum

这是我的数据框 df

col1 col2 col3 col4
 2    2    5    6
 0    0    8    10
 0    1    1    5
 0    5    8    11

我期待这样的事情

    col1 col2 col3 col4  ratio
     2    2    5    6   (2/2)
     0    0    8    10  (8/10)
     0    1    1    5   (1/1)
     0    5    8    11  (5/8)

这就是我试过的

a=function(x){
  w=dff1_redu[which(dff1_redu > 0),]
  sum(w[1:2])
}
 apply(dff1,1,sum[1:2],a)

1 个答案:

答案 0 :(得分:2)

我们可以尝试

df$ratio <- apply(df, 1, FUN= function(x) {x1 <- x[x!=0]
                                             x1[1]/x1[2]})
df$ratio
#[1] 1.000 0.800 1.000 0.625