私のデータは次のようになります
pos year A B
1 2012 1 1
1 2013 1 NA
2 2012 NA NA
2 2013 NA 1
AとBの両方がNAでない場合にのみ、各位置のAとBのパーセンテージ差を計算しようとしました。
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
どんなアイデアでも大歓迎です。ありがとう!