我有一个向量,我需要对每个n数字求和并返回结果.这是我计划当前这样做的方式.有更好的方法吗?
v = 1:100
n = 10
sidx = seq.int(from=1, to=length(v), by=n)
eidx = c((sidx-1)[2:length(sidx)], length(v))
thesum = sapply(1:length(sidx), function(i) sum(v[sidx[i]:eidx[i]]))
Run Code Online (Sandbox Code Playgroud)
这给出了:
thesum
[1] 55 155 255 355 455 555 655 755 855 955
Run Code Online (Sandbox Code Playgroud) 我有从动物跑步实验中获得的 12511 行和 16 列的数据框。每行代表每只动物的每分钟跑步计数。我想对每 60 行的列求和(即每小时计数)。
我尝试使用 apply 函数来求和 60 行:
apply(rw[1:60,],2,sum)
apply(rw[61:120,],2,sum)
apply(rw[121:180,],2,sum)
Run Code Online (Sandbox Code Playgroud)
... 一直这样做直到 12511 是不可想象且耗时的。
我确信有一种聪明的方法可以将我的数据压缩到 208 行。请帮忙!!
谢谢你。