【问题标题】:Why is my data converted to character when I create a time series?为什么创建时间序列时我的数据会转换为字符?
【发布时间】:2018-03-02 09:30:16
【问题描述】:

我目前正在尝试运行 adf.test 来检查我的时间序列中的变量是固定的还是非固定的。但是,当我创建时间序列数据时,

datnew<-cbind(Date,Temp,GHG,SOX,SOL)
datts<-ts(datnew,start = 1850, end = 2011, frequency = 1)

我所有的数值都变成了字符值,而这些变得无法使用。我尝试将我的表转换为同时包含 as.data.frame 和 as.data.frame.matrix 的数据框,但是当我创建时间序列时,此函数仅返回整数值。如果有人知道这是为什么,或者可以帮助我解决问题,我将不胜感激。

【问题讨论】:

  • 不要使用cbind?立即使用data.frame? cbind prob 将所有 4 个向量转换为相同的数据类型类
  • 没有。当您在向量上单独调用cbind 时,它使用base::cbind,它会创建一个matrix。矩阵始终是一个类,因此如果您的任何一个变量是character,那么它们都会被转换。相反,如果您调用cbind.data.frame(如果第一个参数已经是data.frame,则会自动调用)或data.frame(如建议的那样),那么您将不会转换它们。但是,您仍然会为您的文本向量获得 factors,因此我建议将 stringsAsFactors=FALSE 作为参数包含在内。

标签: r time-series character


【解决方案1】:

秦松有答案。 cbind 将所有内容转换为相同的类型。它也是(对于类型数据框)data.frame 函数的包装器。所以只需使用data.frame。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    相关资源
    最近更新 更多