R のデータ フレームに関する問題を解決しようとしています。新しい変数を計算してNA
、データ フレームの行での最初の非発生を示したいと考えています。dput()
私のデータのバージョンは次のとおりです。
structure(list(ID = c("1387894", "533575", "219918", "734589",
"1182091", "1442171", "880182", "2510982", "1533943", "2306853",
"1300782"), s1 = c("A", "A", NA, NA, NA, NA, NA, NA, NA, NA,
NA), s2 = c("A", NA, "A", "A", NA, NA, "A", "A", "A", NA, NA),
s3 = c("A", NA, "A", "A", "A", NA, "A", "A", "A", NA, NA),
s4 = c("A", NA, "A", "A", "A", "A", "A", "A", "A", NA, NA
), s5 = c("A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A")), .Names = c("ID", "s1", "s2", "s3", "s4", "s5"), row.names = c(NA,
11L), class = "data.frame")
データはこの形式を示しています:
ID s1 s2 s3 s4 s5
1387894 A A A A A
533575 A NA NA NA A
219918 NA A A A A
734589 NA A A A A
1182091 NA NA A A A
1442171 NA NA NA A A
880182 NA A A A A
2510982 NA A A A A
1533943 NA A A A A
2306853 NA NA NA NA A
1300782 NA NA NA NA A
最初の位置、 2 番目の位置、...、 5 番目の位置を示すことを考慮して、各行V
の最初の非発生を示す変数を計算したいと考えています。私はこのようなものを取得したい:NA
s1
s2
s5
ID s1 s2 s3 s4 s5 V
1387894 A A A A A 1
533575 A NA NA NA A 1
219918 NA A A A A 2
734589 NA A A A A 2
1182091 NA NA A A A 3
1442171 NA NA NA A A 4
880182 NA A A A A 2
2510982 NA A A A A 2
1533943 NA A A A A 2
2306853 NA NA NA NA A 5
1300782 NA NA NA NA A 5
NA
たとえば、最後の行で、最初に出現しないがありs5
、V
そのため値が 5 になっていることがわかります。おそらく列名のインデックスを考慮して、これを作成する方法について明確な考えがありません。ご協力いただきありがとうございます。