문제

나는 간단한 변화를하려고 노력하고 있습니다.나는 다음 코드를 사용했으며

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

하지만 다음 코드를 사용할 수 없습니다 :

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

나는 또한 일을 할 수있는 평균 함수를 얻으려고 노력했다 :

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

그러나 다음 오류가 계속 발생합니다.

Error: unexpected symbol in:
"data_std2 <- transform(data_header, z.v1 = mean(v1)
data_std2"
.

그래서 나는 그것이 평균과 SD 기능을 사용하는 방법과 관련이있는 것이 무엇인지 추측하지만, 나는 그것을 알아낼 수 없었습니다.

데이터 예제 :

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
.

도움이 되었습니까?

해결책

Your problem is likely (in additon to what gavin said) the NAs. Use na.rm=TRUE as in:

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

다른 팁

Base R has the scale() function for this purpose.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top