将csv加载到R中作为xts,或可比较以启用时间序列分析



我仍在学习R,在使用各种数据类型、类等时会感到非常困惑。我已经无数次遇到"日期"的格式不适合xts的问题,每次都会在长时间努力寻找(我认为)复杂的解决方案后找到解决方案。

我正在寻找一种方法,将CSV加载到R中,并在每次加载时将日期转换为R。99%的文件都将日期作为第一列,格式为01-31-1900(xts想要YYYY-mm-dd)。

现在我有以下内容:

FedYieldCurve <- read.csv("Yield Curve.csv", header = TRUE, sep = ",", stringsAsFactors = FALSE)
FedYieldCurve$Date <- format(as.Date(FedYieldCurve$Date), "%Y/%m/%d")

并且我得到:charToDate(x)中的错误:字符串不是标准的明确格式

format参数必须位于as.Date内部。试试这个(如果文件中的日期以01-31-1900格式存储):

  as.Date(FedYieldCurve$Date,format="%m-%d-%Y")  

当您试图将字符串强制为Date对象时,必须在as.Date调用中将字符串的格式指定为format参数。当您试图强制一个格式不是标准YYYY-mm-dd的字符串时,您会报告错误。

当问这样的问题时,提供文件的几行。在没有这一点的情况下,我们在下面的一个独立的例子中提供了一些数据。

使用zoo包(xts加载)中的read.zoo指定format。(将read.zoo行替换为要从文件中读取的注释行。)

Lines <- "Date,Value
01-31-1900,3"
library(xts)
# z <- read.zoo("myfile.csv", header = TRUE, sep = ",", format = "%m-%d-%Y")
z <- read.zoo(text = Lines, header = TRUE, sep = ",", format = "%m-%d-%Y")
x <- as.xts(z)

参见?read.zoo和动物园中的读取数据。

最新更新