2017-12-04 16 views
0

1000 회의 관측치가있는 데이터 프레임이 있습니다.
각 관찰마다 5 가지 변수가 있습니다. 이제 저는이 5 가지 변수로부터 집합 된 새로운 변수를 만들고 싶습니다.
나는 다음과 같은 입력 :집계 및 NA 값

df$aggr_variable <- (1/5)*(var1+var2+var3+var4+var5) 

내가 다음 새 집계 변수를 가지고, 또한 문제. 관측치 839가 누락 된 값 NAvar2에 있지만 다른 4 개의 변수에 대한 값이 여전히 있다고 가정하면 집계 된 변수에 NA이 표시됩니다.

하나의 변수에 NA가 포함 된 경우 전체 관측치를 생략하지 않고 5 개 변수의 NA를 남겨 둘 수 있습니까?

+3

'안양 $ aggr_variable <- rowMeans (DF = TRUE가 na.rm)' – PoGibas

+0

좋은, 작동, 들으! 지금, 만약 내가 단지 var 1, var3, var4를 집계하고 싶다면, 어떻게 이들을 사용하고 var2와 var5를 남겨 둘 수 있습니까? rowMeans는 이것이 작동하지 않을 것이라는 것을 의미하는 모든 것을 사용하기 때문에 ... –

+0

'rowMeans (subset (df, select = c ("var1", "var3", "var4")), na.rm = TRUE)' – PoGibas

답변

0

총계 방정식에 따르면 각 샘플 (행)에 대해이 5 가지 변수의 평균값을 계산합니다.

#some reproduciable data 
df <- data.frame(var1=rnorm(20,10,5),var2=rnorm(20,5,1),var3=rnorm(20,30,1), 
       var4=rnorm(20,0,1),var5=rnorm(20,3,3)) 
#generates some NAs: 
df[11,5] <- NA 
df[8,3] <- NA 
df[9,1] <- NA 
df[17,2] <- NA 
df[11,2] <- NA 

#aggregate by mean 
df$aggr_variable <- apply(df,1,function(x){mean(x,na.rm=T)})