作者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/cn.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