如何在向量上获得子组摘要?

时间:2015-03-06 03:39:26

标签: r

我知道如何在c风格的for-loop方法中解决这个问题,但我只是想弄清楚如何在R-mindset中解决它 - 函数式编程范例。

说,data <- (10,21,4,34,53,65,24,24,65)有9个元素。我想获得函数sumaverage应用的前3个元素,然后继续执行第2个3和第3个3,最后获得3 sum / {{ 1}}一起形成一个向量。就像这样:

average

但我不知道如何在R中表达bi = [1:3] ei = [7:9] seq(sum(data[bi]), sum(data[ei]), by=3) 适用于索引by?因此结果应该是:

bi

2 个答案:

答案 0 :(得分:0)

这应该有用。

data.frame(data=c(10,21,4,34,53,65,24,24,65)) %>%
    mutate(cuts=cut2(1:length(data), cuts=1:ceiling(length(data)/3))) %>%
    group_by(cuts) %>% summarise(mean=mean(data), sum=sum(data), n=n())

答案 1 :(得分:0)

您可以使用

m<-matrix(data,nr=5,byrow=T)
apply(m,1,mean)
apply(m,1,sum)