첫 번째 행과 두 번째 행의 요소를 비교하는 데이터 프레임을 반복합니다.

첫 번째 행과 두 번째 행의 요소를 비교하는 데이터 프레임을 반복합니다.

데이터프레임을 반복하면서 실제 행과 다음 행의 요소를 비교하고 싶습니다.

예를 들어 다음과 같은 데이터프레임이 있습니다.

      V1       V2          V3            V4
 1   chr1      10         1000          2000 
 2   chr1      10         2000          3000
 3   chr1      10         4000          5000
 .
 .
 .

첫 번째 행, 네 번째 열의 요소를 두 번째 행, 세 번째 열의 요소와 비교하고 동일하면 무언가를 한 다음 두 번째 행, 네 번째 열의 요소를 세 번째와 비교하고 싶습니다. 세 번째 열에 요소를 추가하고 몇 가지 작업을 수행합니다.

그래서 나는 다음과 같은 것을 시도하고 있습니다.

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

관련 정보