[問題] readxl小問題

看板R_Language作者 (小笨)時間8年前 (2016/06/21 11:44), 編輯推噓2(2012)
留言14則, 3人參與, 最新討論串1/2 (看更多)
各位好,我有個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://www.ptt.cc/bbs/R_Language/M.1466480659.A.C22.html

06/21 13:59, , 1F
可是我讀excel出來的格式是POSIXct
06/21 13:59, 1F

06/21 13:59, , 2F
就沒有這個問題
06/21 13:59, 2F

06/21 13:59, , 3F
乾脆設定col_types為text,自己parse?
06/21 13:59, 3F

06/21 15:11, , 4F
C大,所以你是建議read_excel(path,col_types=rep("text
06/21 15:11, 4F

06/21 15:11, , 5F
") 這個做法嗎 這個做法我一直出錯
06/21 15:11, 5F

06/21 15:12, , 6F
Error: `col_names` and `col_types` must have the sam
06/21 15:12, 6F

06/21 15:12, , 7F
e length 這個error會跑出來
06/21 15:12, 7F

06/21 15:13, , 8F
我把col_names 設TRUE FALSE都一樣 難道我要先抓出first
06/21 15:13, 8F

06/21 15:13, , 9F
row 然後塞成vector回去嗎
06/21 15:13, 9F

06/21 16:22, , 10F
C大我在上面那篇parsing有回覆
06/21 16:22, 10F

06/21 16:37, , 11F
可以把col_names都設定FALSE,再塞回去當名字
06/21 16:37, 11F

06/23 17:19, , 12F
col_types的數量要等於column欄位數,就算有空資料也會讀入
06/23 17:19, 12F

06/23 17:22, , 13F
我猜你有些欄位不是虛無值,最簡單的檢查就是ctrl+end
06/23 17:22, 13F

06/23 17:23, , 14F
在MS Excel下按 ctrl+end, 看這個資料到第幾欄.
06/23 17:23, 14F
文章代碼(AID): #1NQBWJmY (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1NQBWJmY (R_Language)