我有這樣的數據集繪製時間以小時爲單位?
Time Forums_Read
1 00:01 1
2 00:04 1
3 00:05 3
4 00:06 3
5 00:07 3
6 00:08 6
7 00:10 2
8 00:11 2
9 00:12 1
我想geom_line數據。但是,它需要是POSIXct類型的。 列時間的結構是:
Factor w/ 1254 levels "00:01","00:04",..
對此有任何解決方案?
謝謝!
我有這樣的數據集繪製時間以小時爲單位?
Time Forums_Read
1 00:01 1
2 00:04 1
3 00:05 3
4 00:06 3
5 00:07 3
6 00:08 6
7 00:10 2
8 00:11 2
9 00:12 1
我想geom_line數據。但是,它需要是POSIXct類型的。 列時間的結構是:
Factor w/ 1254 levels "00:01","00:04",..
對此有任何解決方案?
謝謝!
日期CLA ss POSIXct
需要一個起點。我們可以使用任何數據,因爲Time
列中的值正在彼此進行比較。此函數調用會將日期轉換爲適當的格式。
df$Time <- as.POSIXct(df$Time, format="%M:%S")
我用格式"%M:%S"
來表示分鐘和秒。如果您的數據中包含小時和分鐘,請使用"%H:%M"
。有關日期格式的更多信息,請參閱?strptime
。
查看lubridate - 它對於管理時間基準非常有用 – Zach
隨着@Pierre Lafortune的評論的線條,
Df$Time2 <- as.POSIXct(
paste0(Sys.Date(), " 00:", as.character(Df$Time)))
##
library(ggplot2)
##
ggplot(
data = Df,
aes(x = Time2, y = Forums_Read)) +
geom_line()
數據:
Df <- read.table(text = " Time Forums_Read
1 00:01 1
2 00:04 1
3 00:05 3
4 00:06 3
5 00:07 3
6 00:08 6
7 00:10 2
8 00:11 2
9 00:12 1",
header = TRUE,
stringsAsFactors = TRUE)
該類日期需要一個起點。您可以從中選擇任意日期,如默認和圖表。 'as.POSIXct(df $ Time,format =「%M:%S」)'。我認爲那是幾分鐘和幾秒鐘。如果不是,請使用'「%H:%M」。 –
哼!有趣!它解決了!非常感謝!請給出答案,以便我選擇你的最佳答案!再次感謝。 –
您是否將數據作爲因子讀取?也許你可以通過指定stringsAsFactors跳過分解步驟= FALSE – Zach