作者clansoda (小笨)
看板R_Language
標題[問題] readxl小問題
時間Tue Jun 21 11:44:15 2016
各位好,我有個xls檔案,他是用general格式去儲存時間格式
所以外部顯示會長得像2016/06/21 11:39:25 AM 這樣
但其實裡面是用電腦化的紀錄時間會變成42535.49413
這個應該是以1990-01-01為止到現在的天數 所以是
42535.49413天從那天算起,我用readxl的read_excel讀入
但是他的function在讀入的時候只會讀入兩個小數點
因此會變成42535.49天,接著我用openxlsx的convertDateTime
將這個數字轉換成我們和R看得懂的格式,結果雖然前面都一樣
但是差三位小數導致真實的時間差了五分鐘,如果我想將這個數字導正
請問除了直接在excel加工之外還有其他的方法嗎,openxlsx的read.xlsx
我已經試過了,但是他一直顯示亂碼,我不確定是不是中文太多導致
他沒有可以encoding的選項,而xlsx的read.xlsx是太慢無法使用
如果要人工去調整excel會很辛苦,因為數量不小
不知道有沒有人知道如何解決這個問題呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.172.86.163
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1466480659.A.C22.html
1F:→ celestialgod: 可是我讀excel出來的格式是POSIXct 06/21 13:59
2F:→ celestialgod: 就沒有這個問題 06/21 13:59
3F:→ celestialgod: 乾脆設定col_types為text,自己parse? 06/21 13:59
4F:→ clansoda: C大,所以你是建議read_excel(path,col_types=rep("text 06/21 15:11
5F:→ clansoda: ") 這個做法嗎 這個做法我一直出錯 06/21 15:11
6F:→ clansoda: Error: `col_names` and `col_types` must have the sam 06/21 15:12
7F:→ clansoda: e length 這個error會跑出來 06/21 15:12
8F:→ clansoda: 我把col_names 設TRUE FALSE都一樣 難道我要先抓出first 06/21 15:13
9F:→ clansoda: row 然後塞成vector回去嗎 06/21 15:13
10F:→ clansoda: C大我在上面那篇parsing有回覆 06/21 16:22
11F:→ celestialgod: 可以把col_names都設定FALSE,再塞回去當名字 06/21 16:37
12F:推 Edster: col_types的數量要等於column欄位數,就算有空資料也會讀入 06/23 17:19
13F:推 Edster: 我猜你有些欄位不是虛無值,最簡單的檢查就是ctrl+end 06/23 17:22
14F:→ Edster: 在MS Excel下按 ctrl+end, 看這個資料到第幾欄. 06/23 17:23