相同数据的不同方法R.

时间:2017-09-25 19:06:54

标签: r statistics

我试图获得特定列的三个部分的方法。如下所示,我已经将数据分成三个部分,并找到了方法

> 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

与原始平均值相比,第二个均值似乎四舍五入到了十分之一,但对于另外两个均值则不能说同样的。在连接函数中是否发生了会改变方法的事情?

2 个答案:

答案 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]

将在行mydatamean(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)