我試圖做一個簡單的轉換。我用下面的代碼,它工作得很好:R:使用均值和sd函數進行標準化
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"
所以我猜它與我如何使用mean和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
該錯誤不會立即尖叫'mean()'或'sd()'給我。您在兩次'transform()'調用中都忽略了左括號。看起來這是問題的原因。 – 2012-03-10 20:30:31
感謝您的加括號Gavin! – Tom 2012-03-10 20:56:56
也值得看看'scale'功能。 – 2012-03-10 21:02:43