0
我的數據看起來像過濾器的行和列總和值
pos year A B
1 2012 1 1
1 2013 1 NA
2 2012 NA NA
2 2013 NA 1
我試圖計算每個POS A和B之間的百分比差異,只有當A和B都不NA。
ddply(x, .(pos), summarize, diff = ifelse(is.na(A)==FALSE & is.na(B)==FALSE,
(rowsum(A, pos, na.rm=TRUE)-rowsum(B, pos, na.rm=TRUE))/rowsum(A, pos, na.rm=TRUE),""))
所以結果應該是
pos diff
1 0.5
2 NA
我沒有哪一部分是錯誤的,但我的代碼產生
pos diff
1 0.5
1
2
2
任何想法,將不勝感激。謝謝!
這是你想要''d%>% 濾波器((is.na(A)is.na(B)什麼! )%>% group_by(pos)%>% mutate(A1 = sum(A,na.rm = T),A2 = sum(B,na.rm = T))%> 變異A1-A2, res = Dif/A1)' – Jimbou
嗨。感謝您的過濾器部分。但是rowsum函數對我的情況非常適用。 –