对于相同数据R的不同方法
问题描述:
我想获得特定列的三个部分的手段。如下图所示,我已经分离了数据成排的三个部分,发现手段对于相同数据R的不同方法
> 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
第二平均似乎四舍五入到十位相比原来的意思,但同样不能为其他两种方式来表示。连接函数中是否会发生改变方法的事情?
答
mean(1:50)
会给你的整数序列的均值从1开始,并在50
mydata[c(mean(1:50), mean(51:100), mean(101:150)), 3]
结束会给你行索引mean(1:50)
在mydata
值,mean(51:100)
和mean(101:50)
和列索引3.
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)
您可以将基础数据? – BLT
你是方法是无效的语法。考虑'(1:50)[平均(1:50)]'平均值是25.5。该调用返回25.因此在'['中该值被截断,返回矢量'1:50'中的25值。也许用''[平均(1:50)]''返回“y”更清晰。在'?“[”'中的帮助文件中,它表示*数字值被as.integer强制转换为整数(因此截断为零)* – lmo