我仍在学习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
和动物园中的读取数据。