time <- as.Date("2014-02-01")
#time <- as.Date("01.02.2014")
time # just checking...
df <- data.frame(Time = date())
df <- cbind(Time = as.Date(time))
df
[1,] 16102
我如何獲得一個data.frame持有並返回一個「日期」對象?
感謝您的提前!羅伯特
time <- as.Date("2014-02-01")
#time <- as.Date("01.02.2014")
time # just checking...
df <- data.frame(Time = date())
df <- cbind(Time = as.Date(time))
df
[1,] 16102
我如何獲得一個data.frame持有並返回一個「日期」對象?
感謝您的提前!羅伯特
我不明白你在試圖讓你的榜樣是什麼,但是這應該這樣做:
time <- as.Date("2014-02-01")
df <- data.frame(time = time)
class(df$time)
[1] "Date"
編輯:
如果你想一個新行添加到所有你需要做的一個數據幀是使用$
指數的新變量:
time2 <- as.Date("2014-09-18")
df$newtime <- time2
str(df)
'data.frame': 1 obs. of 2 variables:
$ time : Date, format: "2014-02-01"
$ newtime: Date, format: "2014-09-18"
簡短的回答是
您的第一個數據框的確在第一列中返回一個日期對象。
> (df <- data.frame(Date = Sys.Date()))
# Date
# 1 2014-09-20
> class(df)
# [1] "data.frame"
> class(df$Date)
# [1] "Date"
但是你的第二個df
(我稱之爲cb
)是不是一個數據幀,這是一個矩陣(見?cbind
)。矩陣在每列中只能有數字或字符元素。日期對象以數字值存儲,因此當您使用cbind
時,日期被強制爲其存儲值。
> mode(Sys.Date())
# [1] "numeric"
> (cb <- cbind(Date = Sys.Date()))
# Date
# [1,] 16333
> class(cb)
# [1] "matrix"
> identical(c(cb), as.numeric(Sys.Date()))
# [1] TRUE
,使它看起來像一個日期,當你調用cbind
,您可以使用as.character
。它會被強制變形,但它看起來像一個日期。
> (cb2 <- cbind(Date = as.character(Sys.Date())))
# Date
# [1,] "2014-09-20"
> class(cb2)
# [1] "matrix"
> identical(c(cb2), as.character(Sys.Date()))
# [1] TRUE
謝謝!我對R相對比較陌生(正如你所看到的)。在你看來,如果我想從一個csv文件中解析出一行數據(財務 - 數字,日期時間),並在完成一些日期和時間計算後將其放入表格存儲中,那麼最好還是數據框架或矩陣? – user1481614 2014-09-21 14:02:20
時間,開放,高,低,關閉,卷 01.01.2014 00:00:00.000,1205.393,1205.393,1205.393,1205.393,0.0000 – user1481614 2014-09-21 14:05:38
@ user1481614如果您使用日期,我建議您使用數據框。您將減少日期時間格式 – 2014-09-21 14:40:04
我想添加一行到data.frame。在完成一些日期和時間計算後,我想從csv文件解析一行數據並將其放入data.frame中。 – user1481614 2014-09-21 13:58:39
我編輯了這個問題的答案。 – sebpardo 2014-09-21 17:15:56
@ user1481614 - 你應該在第一個問題中說明這一點。現在編輯您的問題使其他答案無效,我將不會收到您的編輯通知。 – 2014-09-21 18:13:12