以下是我遇到的问题的示例代码。似乎动物园不适用于申请。关于如何使这项工作符合要求的任何建议?
> #I am trying to use apply with zoo
> tmp <- zoo(matrix(c(0,1,0,0,0,1),nrow=3))
> tmp
1 0 0
2 1 0
3 0 1
> #for each column I want to subtract the lag
> #as an example I extract 1 column
> tmpcol <- tmp[,1]
> #this is what I want, for each column
> diffcol <- tmpcol-lag(tmpcol,-1)
> diffcol
2 3
1 -1
> #but if I do this using apply it gives bizarre behavior
> z <- apply(tmp,2,function(x) x-lag(x,-1))
> z
X.1 X.2
1 0 0
2 0 0
3 0 0
答案 0 :(得分:3)
apply
强制其对普通数组的第一个参数,因此不再涉及动物园。也许你想要这个:
> diff(tmp)
2 1 0
3 -1 1
或者
> diff(tmp, na.pad = TRUE)
x.1 x.2
1 NA NA
2 1 0
3 -1 1