我试图做一个简单的转换。我用下面的代码,它工作得很好: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