데이터프레임을 반복하면서 실제 행과 다음 행의 요소를 비교하고 싶습니다.
예를 들어 다음과 같은 데이터프레임이 있습니다.
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")
}
}