r - 将字符分隔到新列中
问题描述
我有以下数据集,并且需要将时间而不是日期放在相对于日期的单独列中。可以用id
, 表示加入时间和日期。
数据集:
# A tibble: 10 x 2
origintime id
<dttm> <int>
1 2021-03-04 18:44:25 1
2 2021-03-04 18:28:32 2
3 2021-03-04 18:25:55 3
4 2021-03-04 18:23:00 4
5 2021-03-04 18:20:00 5
6 2021-03-04 18:15:58 6
7 2021-03-04 18:11:41 7
8 2021-03-04 18:10:57 8
9 2021-03-04 18:10:33 9
10 2021-03-04 18:07:01 10
结果:
# A tibble: 10 x 3
origintime time id
<dttm> <int>
1 2021-03-04 18:44:25 1
2 2021-03-04 18:28:32 2
3 2021-03-04 18:25:55 3
4 2021-03-04 18:23:00 4
5 2021-03-04 18:20:00 5
6 2021-03-04 18:15:58 6
7 2021-03-04 18:11:41 7
8 2021-03-04 18:10:57 8
9 2021-03-04 18:10:33 9
10 2021-03-04 18:07:01 10
可重现的代码:
structure(list(origintime = structure(c(1614883465.299, 1614882512.721,
1614882355.215, 1614882180.074, 1614882000.671, 1614881758.214,
1614881501.122, 1614881457.527, 1614881433.217, 1614881221.603
), tzone = "UTC", class = c("POSIXct", "POSIXt")), id = 1:10), row.names = c(NA,
-10L), class = c("tbl_df", "tbl", "data.frame"))
解决方案
只需使用format
with%T
从“origintime”列中提取时间分量,同时将“origintime”转换为Date
类
library(dplyr)
df1 <- df1 %>%
mutate(time = format(origintime, '%T'), origintime = as.Date(origintime))
或使用separate
并作为character
列返回
library(tidyr)
df1 %>%
separate(origintime, into = c('origintime', 'time'), sep=" ")
推荐阅读
- c# - Swagger - 将字符串注入 IOperationFilter
- amazon-web-services - 使用 AWS 服务分析 NetCDF 文件
- javascript - 在 TextField 中插入列表
- python - Flask 为 404 错误返回随机模板
- spring - Spring Boot 测试多个具有相同 bean 名称的项目
- algorithm - 消除传感器测量中的尖峰
- email - 如何将我的谷歌工作表的工作 pdf 附加到草稿电子邮件?
- css - 如何将 HTML 模板中的 css/js 集成到 laravel 应用程序中?
- r - 每次在 R Shiny 中发生动作时,如何更新数据框?
- c# - 从控制器发送值到控制器