我有一个多层次的结构,我需要做的是为每个人标准化(这是更高级别的单位,每个单位都有几个单独的措施)。
考虑:
ID measure score
1 1 1 5
2 1 2 7
3 1 3 3
4 2 1 10
5 2 2 5
6 2 3 3
7 3 1 4
8 3 2 1
9 3 3 1
我曾经apply(data, 2, scale)
为每个人标准化(这也标准化了 ID 和度量,但没关系)。
但是,我如何确保分别对ID == 1
,ID == 2
和进行标准化ID == 3
?--> 每个observation
- mean of 3 scores
,除以standard deviation for 3 scores
)。
我正在考虑一个for
循环,但问题是我想引导它(换句话说,为一个大数据集复制整个过程 1000 次,所以速度非常重要)。
额外信息:ID 可以有可变的测量值,所以并不是它们都有 3 个测量分数。
的dput
数据是:
structure(list(ID = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L), measure = c(1L,
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), score = c(5L, 7L, 3L, 10L, 5L,
3L, 4L, 1L, 1L)), .Names = c("ID", "measure", "score"), class = "data.frame", row.names = c(NA,
-9L))