我在R数据帧中有28组48行。我试图取每组的标准偏差。我在R Studio中使用了以下语句:
stddev <- vector();
for (i in 1:28) { stddev[i] <- sd(in.subj[((i * 48) -47):(i * 48), 5]); }
之后检查stddev []的值时,stddev [1] = NA。同样,当我检查各个组的标准偏差时,比如sd(in.subj [49:96,5]),我得到的值与打印出的for循环不同。
这些问题的原因是什么? 谢谢!
答案 0 :(得分:1)
你可以尝试:
tapply(in.subj[,5], gl(28,48), sd)
如果您的数据中有一些NA:
tapply(in.subj[,5], gl(28,48), sd, na.rm=T)