2012-03-10 5 views
0

간단한 변형을 시도하고 있습니다.R : 평균 및 sd 함수를 사용하여 표준화

data_stdz <- transform(data_header, z.v1 = (v1 - mean(v1))/(2*sd(v1)) 

을 나는 또한 단지 평균 기능을 얻기 위해 시도했다 : 나는 다음과 같은 코드가 동작하지 않습니다,

data_stdz <- transform(data_header, z.v1 = v1+2) 

그러나 : 나는 다음과 같은 코드를 사용했습니다 그것은 괜찮 았는데

Error: unexpected symbol in: 
"data_std2 <- transform(data_header, z.v1 = mean(v1) 
data_std2" 
0,123,516 : 나는 다음과 같은 오류가 계속,

data_stdz <- transform(data_header, z.v1 = mean(v1) 

을하지만 : 작동하도록

그래서 나는 그것이 mean과 sd 함수를 어떻게 사용하고 있는지와 관련이 있다고 생각하지만, 알아 내지 못했습니다.

데이터 예 : (어떤 개빈 상기 additon에서)

v1 v2 v3 
6.7 3.8 1.2 
6.3 3.2 1.2 
6.1 2.6 1.6 
7 2.4 1 
NA NA NA 
6.5 3.6 2.6 
6.1 2.4 1.6 
6 5.6 5.2 
7 2.8 1 
6.7 3.8 1.4 
5.7 4.2 2.6 
5.1 5.6 5 
NA NA NA 
+2

이 오류는'mean()'또는'sd()'를 내게 비명 지 않습니다. 'transform()'두 호출 모두 닫는 괄호가 없습니다. 그게 문제의 원인 인 것 같습니다. –

+0

괄호 캐치 Gavin에게 감사드립니다! – Tom

+0

'scale' 함수를 살펴볼 가치가 있습니다. –

답변

1

귀하의 문제는 NAS 가능성이있다. 같이 na.rm=TRUE을 사용

transform(data_header, z.v1 = (v1 - mean(v1, na.rm =T))/(2*sd(v1, na.rm =T))) 
+0

이것이 효과적이었습니다. 그렇지 않으면 나는 모든 NA를 얻고있었습니다. – Tom

+0

Dirk의 제안도 참고하십시오. 그것은 당신이 시도하고있는 것에 더 나은 접근 일 수 있습니다. 그리고 톰이'? mean'에서와 같이? function.name을 사용하여 함수에 문제가있을 때 (당신이 R에 대해 얼마나 새로운지 확신 할 수 없을 때) 인수를 포함하여 함수에 대한 유용한 도움말 파일을 제공합니다. 많은 경우에 오류로 이어지는 부적절한 인수 지정입니다. –

+0

R에 매우 새로 도입되었지만 이중 괄호를 보는 것이 새롭지는 않습니다. 조언을 주셔서 감사 드리며 평균 기능에 대한 정보를 찾았지만 도움이되지 않았지만 의미는 무엇입니까? – Tom

2

자료 R이 목적을 위해 scale() 기능을 가지고 있습니다.

+0

제 대답은 포스터의 즉각적인 문제에 대한 대답이지만 Dirks는 당신이 시도하고있는 것에 대한 훨씬 나은 접근 방법입니다. 'scale'은 이것을 여러 가지 다른 일에 매우 유용하게 만드는 다른 주장들을 많이 가지고 있습니다. –

+0

scale() 함수를 고려했지만이를 사용하여 2 * sd를 계산하는 방법을 알지 못했습니다. – Tom