以下是数据。
set.seed(23) data<-data.frame(ID=rep(1:12), group=rep(1:3,times=4), value=(rnorm(12,mean=0.5, sd=0.3)))
ID group value
1 1 1 0.4133934
2 2 2 0.6444651
3 3 3 0.1350871
4 4 1 0.5924411
5 5 2 0.3439465
6 6 3 0.3673059
7 7 1 0.3202062
8 8 2 0.8883733
9 9 3 0.7506174
10 10 1 0.3301955
11 11 2 0.7365258
12 12 3 0.1502212我想要得到每个组内的z标准化分数。所以我试着
library(weights)
data_split<-split(data, data$group) #split the dataframe
stan<-lapply(data_split, function(x) stdz(x$value)) #compute z-scores within group然而,它看起来是错误的,因为我想在'value‘后面添加一个新变量,我该怎么做呢?请提供一些建议(示例代码)。任何帮助都是非常感谢的。
发布于 2013-09-15 10:04:17
在函数中添加新列,并让函数返回整个数据框。
stanL<-lapply(data_split, function(x) {
x$stan <- stdz(x$value)
x
})
stan <- do.call(rbind, stanL)https://stackoverflow.com/questions/18808167
复制相似问题