R:使用scale()获得z分数并合并回来?

时间:2015-02-08 20:54:05

标签: r

我有这样的CSV ...

pid,score
1,3
2,6
3,9
4,1.5
5,5.6
6,10

我可以使用scale(data$score)获得z分数。

但我仍然坚持使用pid键将其合并回来,因此我的原始数据框将为pid,score,z。这个101-ish感觉运动的任何提示?

1 个答案:

答案 0 :(得分:1)

这是一个简单的任务。

首先重新创建数据

dat <- read.csv(header=TRUE, text="pid,score
1,3
2,6
3,9
4,1.5
5,5.6
6,10")

接下来,计算缩放值并直接在数据框中分配。由于缩放操作不会改变数据的顺序,因此这应该有效:

dat <- within(dat, scale <- scale(score))
dat

  pid score       scale
1   1   3.0 -0.86502756
2   2   6.0  0.04552777
3   3   9.0  0.95608310
4   4   1.5 -1.32030523
5   5   5.6 -0.07587961
6   6  10.0  1.25960154

我正在使用within()来保存一些输入并提高可读性。