【发布时间】:2012-08-15 22:23:33
【问题描述】:
我不明白为什么 R 会警告我“更长的对象长度不是更短的对象长度的倍数”
我有这个对象,它是通过对 xts 系列进行聚合生成的,给出工作日的中位数:
u <- aggregate(d, list(Ukedag = format(index(d),"%w")), median)
1 314.0
2 282.5
3 270.0
4 267.0
5 240.5
然后我尝试将此应用于我原来的 xts 系列,看起来像这样(只是更长)
head(d)
2009-01-02 116
2009-01-05 256
2009-01-06 286
使用:
coredata(d) <- coredat(d) - u[format(index(d),"%w")];
这会导致警告。
目的是减去工作日平均值。尽管有警告,它似乎仍然有效,但我应该担心什么?
修改后的解决方案:尝试 2
apply.daily(d, function(x) coredata(x) - u[format(index(x), "%w")] )
我确实有一个严重的错误。这不会给出任何警告,我通过以下方式对其进行了测试:
apply.daily(d, function(x) u[format(index(x), "%w")] )
然后检查一些日期,似乎与日历一致。
【问题讨论】:
-
可能更适合stackoverflow。
-
是的,我对此有点不确定。从某个角度来看,R 是一种可编写脚本的统计工具,但它也是一种编程语言。
-
这个问题至少涉及到一个数据问题,但这将是一个持续的混淆原因,可能没有正确的答案。 meta.stats.stackexchange.com/questions/1/…
-
欢迎弹跳我到 stackoverflow :-) 这是可以自动完成的吗?
-
不,让我们把它留在这里(IMO)。