楼主: priss111
9856 13

[问答] 求助:openxlsx读入.xlsx的日期变量,如何将数值日期转换为年月日日期格式? [推广有奖]

  • 0关注
  • 5粉丝

已卖:9份资源

副教授

16%

还不是VIP/贵宾

-

威望
0
论坛币
153 个
通用积分
47.5396
学术水平
11 点
热心指数
14 点
信用等级
10 点
经验
14935 点
帖子
472
精华
0
在线时间
808 小时
注册时间
2008-3-30
最后登录
2025-3-17

楼主
priss111 发表于 2022-2-21 09:48:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

各位老师好:请问如何将数值的日期转换为年月日形式的日期格式?谢谢!

该.xlsx数据量较大,
用openxlsx包读入,
但原日期变量均显示为数值格式(显示为数字),
如何将这些数值型日期转换为年月日的日期?

1、openxlsx读入data.xlsx数据
library(openxlsx)
data_ <- read.xlsx("data.xlsx", sheet = "data", colNames = TRUE)

2、读入后的日期为数值格式,如:
日期1:43200 43761 43484 ...

3、如何将这些数值格式转换为年月日的日期格式,如:
希望日期1: 2018-01-25, 2017-03-08, 2016-06-10 ...

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:xlsx Open 日期转换 日期变量 xls

沙发
argentriver 发表于 2022-2-21 11:32:09
要么试试readxl包的read_excel函数

藤椅
priss111 发表于 2022-2-21 11:44:08
argentriver 发表于 2022-2-21 11:32
要么试试readxl包的read_excel函数
谢谢回复。
用readxl包读入的日期基本上都是NULL类型,不可行
然后根据大家推荐换成openxlsx包读入,
出现数值型日期。

板凳
argentriver 发表于 2022-2-21 12:56:21
  在我R3.6里读入显示无误:
excel里日期格式数据




   如果你系统与R里依然显示为NULL, 你可取消已合并的单元格后依次转为xls或xlsx、csv格式文件,然后分别用read_excel()、read.csv()读入看看.


readexcel读进日期完整.jpg (116.4 KB)

readexcel读进日期完整.jpg

readexcel读进日期完整.jpg

read.csv读进日期自动去掉时刻点且年月日间为斜杠.jpg (60.77 KB)

read.csv读进日期

read.csv读进日期

excel里日期格式数据用read_excel导入R精确.jpg (104.31 KB)

日期时间

日期时间

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
priss111 + 3 + 4 + 4 精彩帖子

总评分: 学术水平 + 3  热心指数 + 4  信用等级 + 4   查看全部评分

报纸
乐天天12300 发表于 2022-2-21 13:04:16
## So for dates (post-1901) from Windows Excel
as.Date(35981, origin = "1899-12-30") # 1998-07-05
## and Mac Excel
as.Date(34519, origin = "1904-01-01") # 1998-07-05
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
priss111 + 3 + 4 + 4 精彩帖子

总评分: 学术水平 + 3  热心指数 + 4  信用等级 + 4   查看全部评分

地板
s609078902 发表于 2022-2-21 14:58:07
openxlsx::read.xlsx() 有 detectDates = TRUE 参数
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
priss111 + 1 + 4 + 4 + 4 精彩帖子

总评分: 论坛币 + 1  学术水平 + 4  热心指数 + 4  信用等级 + 4   查看全部评分

7
priss111 发表于 2022-2-21 15:45:25
argentriver 发表于 2022-2-21 12:56
在我R3.6里读入显示无误:
谢谢回复!

我的.xlsx文件比较大,30多万行,63个变量。
之前也将其转为.csv格式,
.csv中的有些变量转换不全。

后来就直接读入.xlsx文件了。

8
priss111 发表于 2022-2-21 16:12:08
乐天天12300 发表于 2022-2-21 13:04
## So for dates (post-1901) from Windows Excel
as.Date(35981, origin = "1899-12-30") # 1998-07-05
...
1645430873(1).png 谢谢回复!

as.date对某列(某个变量一整列)进行操作后,数据集中该变量仍显示日期为数字(如下图)。
as.date(data$variable1, origin = "1899-12-30")

1645430873(1).png (84.99 KB)

f11日期仍显示为数值。

f11日期仍显示为数值。

9
priss111 发表于 2022-2-21 16:13:46
s609078902 发表于 2022-2-21 14:58
openxlsx::read.xlsx() 有 detectDates = TRUE 参数
谢谢回复!
已按您的提示解决。

不知后续是否还有问题。

10
priss111 发表于 2022-2-21 16:18:16
乐天天12300 发表于 2022-2-21 13:04
## So for dates (post-1901) from Windows Excel
as.Date(35981, origin = "1899-12-30") # 1998-07-05
...
谢谢回复!

as.Date()对某列数字日期转换后发现数据框的该日期仍未数值,
如图所示。
不知as.Date()解决此问题能否彻底?
1645430873(1).png

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-27 19:35