ここに私のデータがあります:
name = c(letters[1:10], letters[1:10])
Yr <- rep(1:2, each = length (name))
P1 = c(NA, NA,NA, NA, "a", "a", "a", "d", "d", "d", NA, NA,NA,
NA, "a", "a", "a", "d", "d", "d")
P2 = c(NA, NA,NA, NA, "b", "b", "b", "b", "b", "c",
NA, NA,NA, NA, "b", "b", "b", "b", "b", "c")
myd <- data.frame (Yr, name, P1, P2)
P1 と P2 を除くすべての一意の値について、a と b という名前の新しい変数を作成し、P1 と P2 列でそれらの有無をスコアリングしたいと思います。次のように:
Yr name P1 P2 a b c d
1 a <NA> <NA> NA NA NA NA
1 b <NA> <NA> NA NA NA NA
1 c <NA> <NA> NA NA NA NA
1 d <NA> <NA> NA NA NA NA
1 e a b 1 1 0 0
1 f a b 1 1 0 0
1 g a b 1 1 0 0
1 h d b 0 1 0 1
1 i d b 0 1 0 1
1 j d c 0 0 1 1
(1)新しい列- 新しい列は、P1 および P2 列で一意の値です (欠損値を除く)。
(2)新しい列の値- たとえば、「a」という名前 (サブジェクト) の場合、P1 と P2 の両方が NA です。"e" の場合、名前 P1 は "a"、P2 は "b" であるため、"a" と "b" は 1 になり、他のすべては 0 になります。同様に、P1 または P2 の存在に基づいて、列a、b、c、d が採点されます。
予想される完全な出力:
Yr name P1 P2 a b c d
1 a <NA> <NA> NA NA NA NA
1 b <NA> <NA> NA NA NA NA
1 c <NA> <NA> NA NA NA NA
1 d <NA> <NA> NA NA NA NA
1 e a b 1 1 0 0
1 f a b 1 1 0 0
1 g a b 1 1 0 0
1 h d b 0 1 0 1
1 i d b 0 1 0 1
1 j d c 0 0 1 1
1 a <NA> <NA> NA NA NA NA
1 b <NA> <NA> NA NA NA NA
1 c <NA> <NA> NA NA NA NA
1 d <NA> <NA> NA NA NA NA
1 e a b 1 1 0 0
1 f a b 1 1 0 0
1 g a b 1 1 0 0
1 h d b 0 1 0 1
1 i d b 0 1 0 1
1 j d c 0 0 1 1
2 a <NA> <NA> NA NA NA NA
2 b <NA> <NA> NA NA NA NA
2 c <NA> <NA> NA NA NA NA
2 d <NA> <NA> NA NA NA NA
2 e a b 1 1 0 0
2 f a b 1 1 0 0
2 g a b 1 1 0 0
2 h d b 0 1 0 1
2 i d b 0 1 0 1
2 j d c 0 0 1 1
2 a <NA> <NA> NA NA NA NA
2 b <NA> <NA> NA NA NA NA
2 c <NA> <NA> NA NA NA NA
2 d <NA> <NA> NA NA NA NA
2 e a b 1 1 0 0
2 f a b 1 1 0 0
2 g a b 1 1 0 0
2 h d b 0 1 0 1
2 i d b 0 1 0 1
2 j d c 0 0 1 1