我知道如何在c风格的for-loop方法中解决这个问题,但我只是想弄清楚如何在R-mindset中解决它 - 函数式编程范例。
说,data <- (10,21,4,34,53,65,24,24,65)
有9个元素。我想获得函数sum
或average
应用的前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
答案 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)