데이터 프레임의 열을 검사하고 값이 TRUE (연속적이 아님) 인 경우 값을 대체해야합니다. 아래는 그 예입니다. lapply가 작동하지 않습니다. b 열은 전혀 변경되지 않습니다.lapply가 작동하지 않음
a<- c(1,2,3,4,5,1,1,1)
b<- c(TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE)
c<- data.frame(a,b)
index<- which(c$b == TRUE)
lapply(index,function(ind){
c$b[ind + 1]<- ifelse(c$b[ind + 1]==TRUE,FALSE,FALSE)
})
또 다른 방법이 있으며 효과가 있습니다.
trues <- which(c$b)
c$b[c$b == TRUE][c(0, trues[2:length(trues)] - trues[1:length(trues)-1]) == 1] <- FALSE
The correct result is:
> c
a b
1 1 TRUE
2 2 FALSE
3 3 FALSE
4 4 FALSE
5 5 TRUE
6 1 FALSE
7 1 FALSE
8 1 TRUE
여전히 lapply가 작동하지 않는 이유를 알고 싶습니다. 감사.
다른 방법으로는'$ b [c $ b & c (1, diff (c $ b)) == 0] <- FALSE' 예를 들어 –
감사합니다. – user1047