2013-12-10 2 views
1

내 데이터 세트에서 누락 된 값을 대체하기 위해 대체를 사용하고 싶습니다. 몇 가지 제약이 있습니다. 예를 들어, 귀결 변수를 원하지 않습니다. x1은 내 두 변수의 합계가 x2 and x3이라고합시다. 나는 또한 을 0 or 14 or >= 14 and으로 변 환하고 x2를 0 or 16 or >= 16으로 변 환하기를 원합니다. spss에서 이러한 여러 제약 조건을 여러 가지 가정 사항에 대해 정의하려고 시도했지만 spss에서는 최대 및 최소 정의 만 할 수 있습니다. spss에서 furthur 제약을 정의 할 수있는 방법이 있습니까? 아니면 누락 값의 대체를 위해 이러한 제약 조건을 정의 할 수있는 R 패키지를 알고 있습니까? 당신은 단지 값의 정수 경우누락 된 값에 대한 복수 대체 R

x1 =c(21, 50, 31, 15, 36, 82, 14, 14, 19, 18, 16, 36, 583, NA,NA,NA, 50, 52, 26, 24) 
    x2 = c(0, NA, 18,0, 19, 0, NA, 0, 0, 0, 0, 0, 0,NA,NA, NA, 22, NA, 0, 0) 
    x3 = c(0, 0, 0, 0, 0, 54, 0 ,0, 0, 0, 0, 0, 0, NA, NA, NA, NA, 0, 0, 0) 
    dat=data.frame(x1=x1, x2=x2, x3=x3) 
    > dat 
     x1 x2 x3 
    1 21 0 0 
    2 50 NA 0 
    3 31 18 0 
    4 15 0 0 
    5 36 19 0 
    6 82 0 54 
    7 14 NA 0 
    8 14 0 0 
    9 19 0 0 
    10 18 0 0 
    11 16 0 0 
    12 36 0 0 
    13 583 0 0 
    14 NA NA NA 
    15 NA NA NA 
    16 NA NA NA 
    17 50 22 NA 
    18 52 NA 0 
    19 26 0 0 
    20 24 0 0 
+0

이것은 가능하지만 답변을 제시 할 때 데이터가 필요하므로 샘플 데이터를 제공하십시오. – Thomas

+0

정수 값만 있습니까? – agstudy

+0

@ Thomas. 샘플 데이터를 제공했습니다. – rose

답변

0

, 당신은 같은 것을 수행 할 수 있습니다

N <- 5 
set.seed(1) 
dat <- data.frame(x1 = sample(1:10,N,rep=TRUE), 
        x2 = sample(1:10,N,rep=TRUE), 
        x3 = sample(c(1,NA),N,rep=TRUE)) 

> dat 
    x1 x2 x3 
1 3 9 1 
2 4 10 1 
3 6 7 NA 
4 10 7 1 
5 3 1 NA 
## x3 < sum(x1,x2) 
transform(dat,x3 =ifelse(is.na(x3),sample(seq(x1+x2-1),1),x3)) 
    x1 x2 x3 
1 3 9 1 
2 4 10 1 
3 6 7 3 
4 10 7 1 
5 3 1 3 
## x3 in c(0,14) 
transform(dat,x3 =ifelse(is.na(x3),sample(c(0,14),1),x3)) 
    x1 x2 x3 
1 3 9 1 
2 4 10 1 
3 6 7 14 
4 10 7 1 
5 3 1 14 
0

글쎄, 당신은 확실히 간단한 변환 로직 SPSS,하지만 하나는 것이라고 생각했을 것이라고 할 수 알려진 가치의 분포에 대한 대체를 원한다.

관련 문제