0
我有一個數據幀,它看起來像:給定行的列值大於0的數量?
col1 col2 col3
0 0 .4
.3 1 0
0 0 .8
我想創造出統計列的數量在其他三個行值大於0的新列:
col1 col2 col3 col4
0 0 .4 1
.3 1 0 2
0 0 .8 1
我有一個數據幀,它看起來像:給定行的列值大於0的數量?
col1 col2 col3
0 0 .4
.3 1 0
0 0 .8
我想創造出統計列的數量在其他三個行值大於0的新列:
col1 col2 col3 col4
0 0 .4 1
.3 1 0 2
0 0 .8 1
你只需要使用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)
另一種選擇是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