2017-08-28 36 views
-2

我有關於如何格式化要在ggplot中使用的列數據類型的問題。如何將第一列中的因子轉換爲數據類型

我有一個變量,我稱爲「DAT1」,這是由一個字符

dat1 <- c("2017-07-14 18:00:00", "2017-07-14 19:00:00","2017-07-14 20:00:00","2017-07-14 21:00:00", "2017-07-14 22:00:00", "2017-07-14 23:00:00") 
dat1=as.matrix(dat1) 

> class(dat1) 
"matrix" 

> class(dat1[,1]) 
"character" 

的矩陣「mean_hour」是另一個變量,它是數字型的矩陣

mean_hour <- c(132,134,432,233,564,345) 
mean_hour=as.matrix(mean_hour) 

> class(mean_hour) 
[1] "matrix" 

> class(mean_hour[,1]) 
[1] "numeric" 

然後我做了DAT1和mean_hour一個data.frame:

med_horaria_plot <- data.frame(dat1,mean_hour) 

這data.frame住這種方式:

> med_horaria_plot 

      dat1      mean_hour 
      1 2017-07-14 18:00:00  132 
      2 2017-07-14 19:00:00  134 
      3 2017-07-14 20:00:00  432 
      4 2017-07-14 21:00:00  233 
      5 2017-07-14 22:00:00  564 
      6 2017-07-14 23:00:00  345 

> class(med_horaria_plot[,1]) 
[1] "factor" 

> class(med_horaria_plot[,2]) 
[1] "numeric" 

> class(med_horaria_plot) 
[1] "data.frame" 

這是version--全data.frame較小的要大得多,當我在ggplot繪製,在x軸的日期都疊加

我怎樣才能改變類型這些列的,這樣我可以在ggplot使用它們,然後選擇在情節我想的時間,以避免重複

+0

目前還不清楚你希望將這些列轉換爲什麼樣的數據類型 - 我猜測'dat1'的POSIXct和'mean_hour'的數值是?您是否還在使用'dat1'作爲您嘗試陰謀的x軸? – aku

+0

對不起,我失敗了。 dat1必須是一個數據類型 mean_hour數字 我想任何數據類型至極ggplot2讀取,我可以在X軸(例如因子類型不允許更改)進行更改。 是的,dat1是x軸,mean_hour是y軸的 –

+0

您可以添加您用於在ggplot中創建繪圖的代碼嗎?這可能有助於更清楚地瞭解你想要做什麼。 – aku

回答

0

您可以在該dat1列轉換爲POSIXct(由ggplot接受兩個日期格式之一)直截了當的方式:

med_horaria_plot$dat1 <- as.POSIXct(med_horaria_plot$dat1, format = "%Y-%m-%d %H:%M:%S") 

然後繪製像往常一樣,爲ggplot往往需要自己來處理的POSIXct數據標籤相當不錯:

ggplot() + 
    geom_line(data = med_horaria_plot, aes(x = dat1, y = (mean_hour)),group=1,linetype=1) 

如果您仍然希望更改標籤,你可以嘗試scale_x_datetime()

ggplot() + 
    geom_line(data = med_horaria_plot, aes(x = dat1, y = (mean_hour)),group=1,linetype=1) + 
    scale_x_datetime(date_labels = "%b %d") 
相關問題