[問題] strptime 與 ggsave 的問題

看板R_Language作者 (小煥)時間5年前 (2018/12/27 22:24), 編輯推噓0(002)
留言2則, 1人參與, 5年前最新討論串1/1
[問題類型]: 程式諮詢(我想用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 -- 如果將字母A到Z分別編上1到26的分數(A=1,B=2...,Z=26) 你的知識(KNOWLEDGE)得到96分(11+14+15+23+12+5+4+7+5=96) 你的努力(HARDWORK)也只得到98分(8+1+18+4+23+15+18+11=98) 你的態度(ATTITUDE)才是左右你生命的全部(1+20+20+9+20+21+4+5=100) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.235.146.202 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1545920642.A.0A8.html

12/28 16:35, 5年前 , 1F
strptime會回傳POSIXlt物件,但ggplot需要POSIXct物件。
12/28 16:35, 1F

12/28 16:36, 5年前 , 2F
as.POSIXct(strptime(...))應該就好了
12/28 16:36, 2F
文章代碼(AID): #1S9E222e (R_Language)