我正在尝试将data.frame对象转换为zoo(zoo包)对象。这样做的第一步是使用as.Date
将数据(df)中的日期列转换为Date类,格式为D / M / Y.数据如下:
Date Return
1986-02-03 0.10
1986-02-04 0.15
1986-02-05 0.16
1986-02-06 0.18
使用以下代码时:
df.data <- as.Date(df$Date)
它转换为类,但日期是Y-M-D格式。使用以下代码时
df.data <- as.Date(df$Date, format = "%d/%m/%y")
它给出所有值的NA。问题在哪里?
Sys:Mavericks 64bit
答案 0 :(得分:2)
使用read.zoo
:
z <- read.zoo(DF)
注意:我们假设DF
是:
DF <- data.frame(Date = c("1986-02-03", "1986-02-04", "1986-02-05", "1986-02-06"),
Return = c(0.1, 0.15, 0.16, 0.18))
答案 1 :(得分:1)
df <- structure(list(Date = c("1986-02-03", "1986-02-04", "1986-02-05",
"1986-02-06"), Return = c(0.1, 0.15, 0.16, 0.18)), .Names = c("Date",
"Return"), class = "data.frame", row.names = c(NA, -4L))
library(zoo)
zoo(df[,2], format(as.Date(df$Date), "%d/%m/%y"))
#03/02/86 04/02/86 05/02/86 06/02/86
# 0.10 0.15 0.16 0.18
zoo(df[,2],as.Date(df$Date))
#1986-02-03 1986-02-04 1986-02-05 1986-02-06
# 0.10 0.15 0.16 0.18