将data.frame转换为xts对象并保留类型

时间:2011-07-01 16:12:50

标签: r xts zoo

有没有办法从data.frame创建xts对象并保留数据类型?我的数字正在转变为人物。 2009年的这篇文章建议将列合并到现有的xts中: http://r.789695.n4.nabble.com/as-xts-convert-all-my-numeric-data-to-character-td975564.html

目前尚不清楚这是否是唯一的方法。对于大型数据帧来说,似乎有点麻烦和麻烦。我认为开箱即用的xts会尊重数据类型。

2 个答案:

答案 0 :(得分:7)

不,你不能。 xts / zoo对象是一个带索引属性的矩阵,你不能在矩阵中混合类型。

我们考虑过创建一个xts-data.frame类,但xts主要关心的是速度和内存效率。 data.frames不是速度和内存效率,所以这不是一个优先事项。

答案 1 :(得分:2)

我遇到了同样的问题,我的解决方案是在指定数据对象时不包括时间列。只要所有其他列属于同一类型,就应该没有问题。

data< - xts(data [,2:6],order.by = data $ time,unique = FALSE,tzone =“”)

(数据$ time是第一列,是POSIXct所以我将其排除。其他一切都是数字的)