2014-10-20 2 views
0

WIND_CHILL, DRY_BULB_TEMPWIND_SPEED에 대한 값을 포함하는 data.frame이 있습니다. WIND_SPEED <= 5 일 때 WIND_CHILL = DRY_ BULB TEMP을 설정하고 싶습니다.이 속도에서 WIND_CHILL의 공식은 온도를 효과적으로 예측하지 못하기 때문입니다. WIND_CHILL은 9 번째 열, DRY_BULB_TEMP 번째 열 및 WIND_SPEED 번째 열은 data.frame입니다. data.framevenue입니다. 나는 너희들에게 이렇게 말하면서 내가 무엇을 시도했는지 이해할 수있다. :R - 데이터 프레임의 값 대체

n <- nrow(venue) 
for(i in 1:n) { 
    if(venue[n,7] <= 5) { 
     venue[n,9] <- venue[n,4] 
    } 
} 

어떤 아이디어 ??

+0

나중에 다른 사람들이 오류를보다 쉽게 ​​재현 할 수 있도록 데이터 샘플을 게시하십시오. 당신의 질문에 답하기 위해서, 당신은 이것을하기 위해'for' 루프가 필요하지 않습니다 - 저는'venue [, 9] nrussell

답변

1

data.frame을 제공하지 않았기 때문에 머리에서 벗어나야합니다. P.

venue[venue$WIND_SPEED<=5,"WIND_CHILL"]=venue[venue$WIND_SPEED<=5,"DRY_BULB_TEMP"] 

나 :

venue[venue$WIND_SPEED<=5,9]=venue[venue$WIND_SPEED<=5,4] 
+0

'WIND_CHILL'과'DRY_BULB_TEMP'는''WIND_CHILL''과''DRY_BULB_TEMP'' 또는'venue $ WIND_CHILL'과'venue $ DRY_BULB_TEMP' 중 하나 여야합니다. 그 외에는 접근 방식이 정확합니다. – nrussell

+0

오푸스와 오타가 있습니다. – phonixor

+0

고마워요. –

0

그래서, 나는 당신의 데이터 세트에 대한 액세스 권한이없는, 그래서 나는 간단한 예제를 마련했다.

x1<-rnorm(100,mean=0,sd=10) 
x2<-rep(0,100) 
x3<-rep(1,100) 

df<-data.frame(x1,x2,x3) 

summary(df$x2) 

#overwrite x2 for values of x1 less than 3 
df$x2[ which(df$x1 < 3) ] <- 1 

summary(df$x2) 

summary(df$x3) 
#overwrite x3 for values of x1 >= 3 
df$x3[ which(df$x1 >= 3) ] <- 0 

summary(df$x3) 

데이터 프레임에 3 개의 변수가 있음을 알 수 있습니다. x1은 임의의 변수이고 x2와 x3은 x1의 공칭 (x1> = 3 인 경우 x1은 < 3이면 x2는 1이고 x3은 0이어야 함)입니다. 이 명령을 실행하면 which 문을 사용하면 덮어 쓸 필요가있는 인덱스를 반환하기 때문에 값을 선택적으로 덮어 쓰는 데 도움이됩니다.

> x1<-rnorm(100,mean=0,sd=10) 
> x2<-rep(0,100) 
> x3<-rep(1,100) 
> 
> df<-data.frame(x1,x2,x3) 
> 
> summary(df$x2) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
     0  0  0  0  0  0 
> 
> #overwrite x2 for values of x1 less than 3 
> df$x2[ which(df$x1 < 3) ] <- 1 
> 
> summary(df$x2) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
    0.00 0.00 1.00 0.58 1.00 1.00 
> 
> summary(df$x3) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
     1  1  1  1  1  1 
> #overwrite x3 for values of x1 >= 3 
> df$x3[ which(df$x1 >= 3) ] <- 1 
> 
> summary(df$x3) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
     1  1  1  1  1  1 
> x1<-rnorm(100,mean=0,sd=10) 
> x2<-rep(0,100) 
> x3<-rep(1,100) 
> 
> df<-data.frame(x1,x2,x3) 
> 
> summary(df$x2) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
     0  0  0  0  0  0 
> 
> #overwrite x2 for values of x1 less than 3 
> df$x2[ which(df$x1 < 3) ] <- 1 
> 
> summary(df$x2) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
    0.00 0.00 1.00 0.63 1.00 1.00 
> 
> summary(df$x3) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
     1  1  1  1  1  1 
> #overwrite x3 for values of x1 >= 3 
> df$x3[ which(df$x1 >= 3) ] <- 0 
> 
> summary(df$x3) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
    0.00 0.00 1.00 0.63 1.00 1.00