[問題] strptime 與 ggsave 的問題

作者: hanglong (小煥)   2018-12-27 22:23:51
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
新手(沒寫過程式,R 是我的第一次)
[問題敘述]:
各位R版上的先進大家好 近期我在使用程式上 遇到一些比較奇怪的問題
原先使用程式上 都沒有任何的異常 但近期因為電腦有些問題 需要重灌
我就把自己寫的程式儲存起來 想說重灌後 再重新下載R與R Studio
灌好R後再重新下載需要的Package 但特別的是 原本可以跑的程式
就出現了Error 導致程式無法執行 以下為我的程式碼
[程式範例]:
library(gplots)
library(ggplot2)
library(SixSigma)
library(lubridate)
library(Cairo)
coat <- read.csv("C:\\Users\\rex\\Desktop\\coating.csv")*[m
#其中 coat$作業日 是日期的形式,例如:2018/12/27
#coat$average.是浮點數
#我想用這兩個畫圖,X座標為日期,Y座標為數值
ggsave(plot = ggplot(data = coat) + geom_point(aes(strptime(作業日,
"%Y/%m/%d"), average.1)), file = "X:\\趨勢圖.pdf", width = 15, height = 7,
device = cairo_pdf, family = "Song")
但程式出現以下錯誤:
Error in dev(filename = filename, width = dim[1], height = dim[2], ...) :
unable to start device 'cairo_pdf'
In addition: Warning message:
In dev(filename = filename, width = dim[1], height = dim[2], ...) :
cairo error 'out of memory'
在還無法解決此問題的情形下 我想說先畫圖 之後在解決儲存的問題
因此將內容擷取出來:
ggplot(data = coat) + geom_point(aes(strptime(作業日, "%Y/%m/%d"), average.1))
此時出現另外的錯誤:
Error: Column `x` is a date/time and must be stored as POSIXct, not POSIXlt
而以上的兩個問題 在重灌之前是都不會出現
程式是可以順利執行的 但是不曉得為什麼會出現這些錯誤
原本想說是不是有其他的Package我沒有使用到 但是程式並沒有出現看不懂函數的訊息
希望各位先進可以指點迷津 謝謝
[環境敘述]:
R version 3.5.2 (2018-12-20)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale:
[1] LC_COLLATE=Chinese (Traditional)_Taiwan.950 LC_CTYPE=Chinese
(Traditional)_Taiwan.950
[3] LC_MONETARY=Chinese (Traditional)_Taiwan.950 LC_NUMERIC=C
[5] LC_TIME=Chinese (Traditional)_Taiwan.950
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] Cairo_1.5-9 lubridate_1.7.4 SixSigma_0.9-52 ggplot2_3.1.0
gplots_3.0.1
loaded via a namespace (and not attached):
[1] Rcpp_1.0.0 magrittr_1.5 MASS_7.3-51.1 munsell_0.5.0
[5] xtable_1.8-3 colorspace_1.3-2 lattice_0.20-38 R6_2.3.0
[9] rlang_0.3.0.1 stringr_1.3.1 plyr_1.8.4
caTools_1.17.1.1
[13] tools_3.5.2 qcc_2.7 grid_3.5.2 gtable_0.2.0
[17] KernSmooth_2.23-15 withr_2.1.2 gtools_3.8.1 digest_0.6.18
[21] lazyeval_0.2.1 tibble_1.4.2 crayon_1.3.4 bitops_1.0-6
[25] testthat_2.0.1 labeling_0.3 stringi_1.2.4 gdata_2.18.0
[29] compiler_3.5.2 pillar_1.3.1 scales_1.0.0
[關鍵字]:
strptime ggsave ggplot2
作者: andrew43 (討厭有好心推文後刪文者)   2018-12-28 16:35:00
strptime會回傳POSIXlt物件,但ggplot需要POSIXct物件。as.POSIXct(strptime(...))應該就好了

Links booklink

Contact Us: admin [ a t ] ucptt.com