我试图获得特定列的三个部分的方法。如下所示,我已经将数据分成三个部分,并找到了方法
> x<-mydata[1:50,3]
> mean(x)
[1] 1.462
> za<-mydata[51:100,3]
> mean(za)
[1] 4.26
> ch<-mydata[101:150,3]
> mean(ch)
[1] 5.552
我试图把它放在一个陈述中,但手段与单独陈述的手段不同。
mydata[c(mean(1:50), mean(51:100), mean(101:150)), 3]
[1] 1.9 4.3 5.7
与原始平均值相比,第二个均值似乎四舍五入到了十分之一,但对于另外两个均值则不能说同样的。在连接函数中是否发生了会改变方法的事情?
答案 0 :(得分:0)
试试这个:
c(mean(mydata[1:50,3]), mean(mydata[51:100,3], mean(mydata[101:150,3])
答案 1 :(得分:0)
mean(1:50)
将给出从1开始到50结束的整数序列的平均值。
mydata[c(mean(1:50), mean(51:100), mean(101:150)), 3]
将在行mydata
,mean(1:50)
和mean(51:100)
以及列索引3的mean(101:50)
中为您提供值。
c( mean(mydata[1:50, 3]), mean(mydata[51:100, 3]), mean(mydata[101:150, 3]) )
应该给你预期的结果。
针对同一问题的几种不同解决方案:
sapply(split(mydata[, 3], ceiling(seq_along(mydata)/50)), mean)
sapply(split(mydata[, 3], rep(1:3, each=50)), mean)