r - 转换从 R 中的 excel 导入的自定义日期格式
问题描述
将 excel 表导入 R 后,我在一些事情上苦苦挣扎。
当我将它导入 R 时,它会将其更改为数值(与我在 Excel 中将单元格类型更改为“通用”的值相同)。我用谷歌搜索并尝试了几种方法来解决这个问题,例如以下
但是,我得到的是以下格式的日期:yyyy-mm-dd。此外,43466:44105 包括这些范围之间的每一天。
- 我应该一个一个地输入数字吗?即 443466(9 月 19 日)、43497(10 月 19 日)等等。
- 如何将其更改为“mm-yy”格式?
最重要的是,一旦我弄清楚如何将这些数字转换为日期,我不确定如何重命名所有日期列。我知道如何重命名多列内的多个元素,但不能将相同的函数(转换)应用于多列(据我所知)。
提前感谢您提供的任何帮助,如果这是一个愚蠢的问题,我们深表歉意,但我是一个尝试新手事物的新手。
解决方案
我创建了一些示例数据:
#// sample data
df <- structure(list(region = structure(c(2L, 1L, 3L), .Label = c("london",
"north east", "west midlands"), class = "factor"), X43466 = c(5,
4, 5), X43497 = c(6, 7, 8)), class = "data.frame", row.names = c(NA, -3L))
#// check the input
df
#> region X43466 X43497
#> 1 north east 5 6
#> 2 london 4 7
#> 3 west midlands 5 8
以下是将列名转换为日期格式的方法:
#// get column names
names <- colnames(df)[2:3]
#// remove leading x
names <- sub('.', '', names)
#// convert to numeric
names <- as.numeric(names)
#// convert from Excel date format
names <- as.POSIXct(names * (60*60*24)
, origin="1899-12-30"
, tz="GMT")
#// write column names back
colnames(df)[2:3] <- as.character(names)
POSIX 转换的代码可能需要根据您的 Excel 设置和时区进行调整,但您应该能够对其进行排序。结果你应该得到这样的东西:
#// check the results
df
#> region 2019-01-01 2019-02-01
#> 1 north east 5 6
#> 2 london 4 7
#> 3 west midlands 5 8
推荐阅读
- node.js - req.body 尝试解析两次时未定义(参见代码)
- django - 获取登录用户,同时在 Django 中使用 UpdateView 更新模型用户
- apache-kafka - Kafka Streams > KTable 加入问题
- ios - 为什么 iOS 会显示警告“此应用程序需要由开发人员更新才能在此版本的 iOS 上运行”。对于我的反应原生应用程序?
- mysql - 规范化现有数据;varchar 列表到整数
- api - 如何在flutter中返回并显示计数结果json响应api
- reference - 引用和变量之间的关系
- go - 为什么我的 Gin and Go 测试没有通过?
- ms-access - 使用整数值更新 ms-access 导致算术溢出 将表达式转换为数据类型 int 的算术溢出错误
- flutter - 在标头中传递 JWT 时获取 403