次のデータフレームを検討してください。
d <- data.frame(c1=c(rep("a",6),rep("b",6)),
c2=c("v1","v1","v2","v3","v3","v1", "v2","v3","v1","v2","v3","v2"),
c3=c(1.4,-1.2,1.5,1.6,-1.7,1.2, -1.1,-1.2,1.3,1.5,1.1,-1.9))
列c1の「a」と「b」に正と負の数がいくつあるかを数える4番目の列c4を追加したいと思います。ただし、c2が「v1」に等しい場合は、c3の値のみを考慮する必要があります。さらに、正または負の値しかない場合は、空の文字列を出力する必要があります
したがって、私の例では、4番目の列は次のようになります。
> d
c1 c2 c3 c4
1 a v1 1.4 2/1
2 a v1 -1.2 2/1
3 a v2 1.5 2/1
4 a v3 1.6 2/1
5 a v3 -1.7 2/1
6 a v1 1.2 2/1
7 b v2 -1.1 " "
8 b v3 -1.2 " "
9 b v1 1.3 " "
10 b v2 1.5 " "
11 b v3 1.1 " "
12 b v2 -1.9 " "
c2 = "v1"の場合、2つの正の数と1つの負の数があるため、2/1の値が使用されます。
現時点では、集計関数を使用して最も接近しましたが、それでも実際には正しくありません。そのような問題に使用するより良い関数があるかどうかわかりませんか?