最初の行と2番目の行の要素を比較するデータフレームを繰り返します。

最初の行と2番目の行の要素を比較するデータフレームを繰り返します。

データフレームを繰り返しながら、実際の行と次の行の要素を比較したいと思います。

たとえば、次のデータフレームがあります。

      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")
 } 
}

おすすめ記事