データフレームを繰り返しながら、実際の行と次の行の要素を比較したいと思います。
たとえば、次のデータフレームがあります。
V1 V2 V3 V4
1 chr1 10 1000 2000
2 chr1 10 2000 3000
3 chr1 10 4000 5000
.
.
.
最初の行、4番目の列の要素を2番目の行、3番目の列の要素と比較し、同じ場合は何かをし、2番目の行、4番目の列の要素を3番目の列と比較したいと思います。 3番目の列に要素を追加し、いくつかのタスクを実行します。
だから私は次のことを試しています。
for (i in 1:nrow(my_dataframe)){
if (my_dataframe[i, 4] == my_dataframe[i+1 , 3]) {
print("OK")
}
}
だからこれは私にサンプルデータフレーム1を与えるでしょう。
しかし、次のエラーが発生するため、Rはi + 1が好きではないようです。
Error in if (tabla4subset[i, 4] > tabla4subset[i + 1, 3]) { :
missing value where TRUE/FALSE needed
これを行う方法を知っている人はいますか?
ベストアンサー1
どちらが問題なのか分かりそうです。
i + 1 = nrow(my_dataframe) + 1
たとえば、私のデータフレームに10行がある場合は、末尾の行10を存在しない行11と比較したいとします。したがって、解決策は次のとおりです。
for (i in 1:(nrow(my_dataframe)-1)) {
if(my_dataframe[i, 4] == my_dataframe[i + 1, 3]) {
print("OK")
}
}