R:平均関数とSD関数を使用して標準化します
-
11-12-2019 - |
質問
簡単な変換をしています。私は次のコードを使いました、そしてそれはうまくいった:
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.
所属していません StackOverflow