R:为什么我的向量是无序的?
假设我有这个动物园的向量R:为什么我的向量是无序的?,r,vector,zoo,R,Vector,Zoo,假设我有这个动物园的向量 mine <- zoo(c(rep(0,4),rep(1,4),rep(0,5),rep(1,23),rep(0,4),rep(1,2)),as.chron(seq(1:42))) 它起作用了!。 但现在我试着用另一种方式去做 zz <- c(14, 5, 41) mine[zz] 01/06/70 01/15/70 02/11/70 1 1 1 zzzoo为什么这样做的答案是它有一个函数[([.zoo)的
mine <- zoo(c(rep(0,4),rep(1,4),rep(0,5),rep(1,23),rep(0,4),rep(1,2)),as.chron(seq(1:42)))
它起作用了!。
但现在我试着用另一种方式去做
zz <- c(14, 5, 41)
mine[zz]
01/06/70 01/15/70 02/11/70
1 1 1
zzzoo为什么这样做的答案是它有一个函数[
([.zoo
)的方法,并且它从子集值创建一个新的zoo对象,逻辑上它希望对其进行重新排序,以使其成为有效的zoo对象
您可以通过相关的访问器功能访问时间索引和数据,从而实现所需的功能:
> index(mine)[c(14, 5, 41)]
[1] 01/15/70 01/06/70 02/11/70
> coredata(mine)[c(14, 5, 41)]
[1] 1 1 1
如果您想将此合并为一个步骤,请编写您自己的乐趣:
myExtract <- function(x, want) {
out <- coredata(mine)[want]
names(out) <- index(x)[want]
out
}
zoo为什么这样做的答案是它有一个函数[
([.zoo
)的方法,并且它从子集值创建一个新的zoo对象,逻辑上它希望对其进行重新排序,使其成为一个有效的zoo对象
您可以通过相关的访问器功能访问时间索引和数据,从而实现所需的功能:
> index(mine)[c(14, 5, 41)]
[1] 01/15/70 01/06/70 02/11/70
> coredata(mine)[c(14, 5, 41)]
[1] 1 1 1
如果您想将此合并为一个步骤,请编写您自己的乐趣:
myExtract <- function(x, want) {
out <- coredata(mine)[want]
names(out) <- index(x)[want]
out
}
请尝试提供可复制的代码,此示例需要R中的zoo包和chron包,在未声明的环境中具有未指定的版本使用rep
的每个参数避免重复调用,例如rep(rep.int(0:1,3),每个=c(4,4,5,23,4,2))
。请尝试提供可复制的代码,此示例需要R中的zoo包和chron包,在未声明的环境中具有未指定版本使用rep
的每个参数避免重复调用,例如,rep(rep.int(0:1,3),每个=c(4,4,5,23,4,2))
。非常感谢。简单(但很重要)像这样的事情会导致代码失败非常感谢。像这样简单(但很重要)的事情会导致代码失败