有了这些数据:
> data
[1] 1290603356 1290603360 1290603350 1290603344 1290603340 1290603373
[7] 1290603354 1290603359 1290603345 1290603363 1290603357 1290603354
[13] 1290603364 1290603349 1290603352 1290603365 1290603349 1290603343
[19] 1290603339 1290603343
> offsets <- c(0, 0.5,1,2,4,8,24,4*24,7*24) * 3600)
[1] 1800 3600 7200 14400 28800 86400 345600 604800
> myoffsets <- min(data)+offsets
是,UNIX 纪元列表和偏移量列表(0.5 小时、1h、2h、4h...)
我希望能够绘制出有多少纪元
在这个例子中它将是
1 20 20 20 20 20 20 20
我已经找到了如何使用 for 循环来做到这一点:
for(i in c(1:length(myoffsets))) myres$x[i] <- length(data[data <= myoffsets[i]])
但我确信如果这样做不那么复杂的话,还有一种更惯用的方法?
建议一:稍微更惯用的方法是替换
长度(数据[数据
with
总和(数据
这样你最终就不会采取一个子集data
对于每个值myoffsets
,仅计算其长度并丢弃。
建议2: The c()
in the for
是多余的。下面的代码可以用更少的击键来完成同样的事情:for(i in 1:length(myoffsets))
.
Lastly,如果您希望摆脱显式循环,这样的事情可能符合您的口味:
myers$x
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)