過去数日間、私は各データフレームの同じフィールドにデータフレームのリストをループしながらインデックスを使用しようとしていました。しかし、私は解決策を考え出すことができませんでした。私はlapplyを使用すべきだと確信していますが、コマンドを実行するためにデータフレームのリストの中で行番号を参照する方法を理解することはできません。R:データフレームのリストをループしながらインデックスを使用する
は私のデータは次のようになります。
pin keypin2
01011030030000 01011030030000
01011030030000 0
01011030040000 01011030030000
01011030040000 0
01011040040000 01011040030000
01011040040000 01011040030000
01011040040000 01011040030000
01011040040000 0
01011060040000 01011060010000
01011060040000 0
01011060040000 0
01011060040000 0
目標は、直接「0」の値以上keypin2値を持つkeypin2フィールドに「0」の値を移入することである
- 条件に、そのピン値一致。
私は、単一のデータフレームにこれを実現行うためのループのための簡単なを書いた:私は2で始まる
for(i in 2:nrow(test3)) {
if(test3[i,2] == "0") {
if(test3[i,1]==test3[c(i-1),1]){
test3[i,2] <- test3[c(i-1),2]
}
}
}
:nrow(TEST3)私はそうでない場合は最初のレコードに負のインデックスを取得するため、およびI最初のレコードが "0"のkeypin2を持っているなら、keypin2がないので "0"のままにすることができます。
結果は完璧です:
pin keypin2
01011030030000 01011030030000
01011030030000 01011030030000
01011030040000 01011030030000
01011030040000 01011030030000
01011040040000 01011040030000
01011040040000 01011040030000
01011040040000 01011040030000
01011040040000 01011040030000
01011060040000 01011060010000
01011060040000 01011060010000
01011060040000 01011060010000
01011060040000 01011060010000
私は今、すべて同じ構造で、データフレームのリストにこれを適用します。私はラップでこれを行うことができるはずだと確信していますが、私はそれを正しいものにすることはできません。どんな助けや方向性も高く評価されます。