2017-01-30 71 views
1

這裏是我的數據幀DF獲取的前兩個非零值的比率中的R

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) 

回答

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 
+1

嘿謝謝@akrun,這是一個很好的... – Deepesh