2016-09-16 25 views

回答

2

你只需要使用apply功能:

## Example Data 
dd = data.frame(col1 = c(0, .3, 0), col2=c(0, 1, 0), 
         col3=c(0.4, 0, 0.8)) 
apply(dd, 1, function(i) sum(i > 0)) 

所以要加這個太現有的數據幀:

dd$col4 = apply(dd, 1, function(i) sum(i > 0)) 

另外,我們可以轉換成數據幀的邏輯值,則使用rowSums

rowSums(dd > 0) 
0

另一種選擇是Reduce+遍歷列之後創建的邏輯vector小號

一個 list
dd$col4 <- Reduce(`+`, lapply(dd, `>`, 0)) 
dd 
# col1 col2 col3 col4 
#1 0.0 0 0.4 1 
#2 0.3 1 0.0 2 
#3 0.0 0 0.8 1 
相關問題