2011-04-21 2 views
1

나는 확실한 대답을 온라인으로 찾을 수있는 또 다른 오히려 기본적인 질문 :데이터 프레임에서 NA를 매 3 개의 다른 데이터에 어떻게 설정할 수 있습니까?

은 내가

datnew<-c(1,2,3,NA,NA,NA,7,8,9,NA) 

에 나타나서을 변경하려면이

dat<-c(1,2,3,4,5,6,7,8,9,10) 

같은 데이터 세트가 있다고 가정을 기본적으로 큰 데이터 프레임에서 3 개 데이터를 모두 NA로 바꿉니다.

감사합니다,

답변

10

rep()를 통해 적절한 인덱스를 만듭니다

R> foo <- 1:10 
R> foo 
[1] 1 2 3 4 5 6 7 8 9 10 
R> ind <- rep(c(FALSE, TRUE), each=3) 
R> ind 
[1] FALSE FALSE FALSE TRUE TRUE TRUE 
R> foo[ind] <- NA 
R> foo 
[1] 1 2 3 NA NA NA 7 8 9 NA 
R> 

재활용 데이터 벡터에 대한 필요에 따라 수시로 적용됩니다 만든 인덱스로 당신을 도와줍니다.

편집 : 위의 ind도 표시합니다.

0

나는 더 나은 방법이 있다고 생각했지만, 더크가 나에게 지적한 것처럼 나는 틀렸다. 아래에서 나는 나의 대답을 고쳤지만, 내 것은 더크의 대답보다 더 분명하지 않다. 이 데이터 프레임이 정말로 경우

foo[c(seq(4,length(foo),6),seq(5,length(foo),6),seq(6,length(foo),6))] <- NA 

는, 당신은 당신이 그것을 aplly 및 요소의 수를 얻기 위해 다른 명령을 사용하려면 행 지정해야합니다 ((DAT) 희미한 같은를 [1]).

+0

그 대답은 잘못되었습니다. 당신은 ** 싱글 ** 요소를 설정하고 있습니다, OP는 3 개의 덩어리를 요구했습니다. –

+0

@Dirk, 네가 맞아! 죄송합니다. 내 대답을 편집 할게. –

관련 문제