- 问题: 用for循环算z-score遇到的问题
[问题类型]
程式咨询
[软件熟悉度]:
新手(没写过程式,R 是我的第一次)
[问题叙述]:
不好意思小妹初学R又来打扰
想要把分数依照每位受试者去算z score
每位受试者有8个观察值
于是我先分别计算平均数和标准差,如下
A20是我要标准化的变项,sub是受试者编号
wtpmean=aggregate(dat$A20,by=list(dat$sub),mean)
colnames(wtpmean)=c("sub","mean")
wtpsd=aggregate(dat$A20,by=list(dat$sub),sd)
colnames(wtpsd)=c("sub","sd")
接着我想要用循环来把分数标准化
zscore=0
for(i in 1:length(dat$A20)){
zscore=(subset(dat$A20,dat$sub==i)-wtpmean$mean[i])/wtpsd$sd[i]}
但是这里就出现问题了,我的zscore是空的,我不知道是哪里写错了
还是循环的用法不对呢?
[环境叙述]:
R version 3.3.0 (2016-05-03)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
locale:
[1] LC_COLLATE=Chinese (Traditional)_Taiwan.950
[2] LC_CTYPE=Chinese (Traditional)_Taiwan.950
[3] LC_MONETARY=Chinese (Traditional)_Taiwan.950
[4] LC_NUMERIC=C
[5] LC_TIME=Chinese (Traditional)_Taiwan.950
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
loaded via a namespace (and not attached):
[1] tools_3.3.0