R 将字符分隔为新列
我有以下数据集,需要将时间而不是日期放在与日期相关的单独列中。可通过R 将字符分隔为新列,r,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
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
只需使用
格式
和%T
即可从“origintime”列中提取时间分量,同时将“origintime”转换为日期
类
library(dplyr)
df1 <- df1 %>%
mutate(time = format(origintime, '%T'), origintime = as.Date(origintime))
真管用!虽然,我希望从原始列中删除时间部分,但在您的情况下,它仍保留在同一列中,同时生成一个新列
time
@no\t'-我更新了帖子
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"))
library(dplyr)
df1 <- df1 %>%
mutate(time = format(origintime, '%T'), origintime = as.Date(origintime))
library(tidyr)
df1 %>%
separate(origintime, into = c('origintime', 'time'), sep=" ")
library(data.table)
setDT(df)
df[ , c('origintime', 'time') := tstrsplit(origintime, " ")]
df
# origintime id time
# 1: 2021-03-04 1 18:44:25
# 2: 2021-03-04 2 18:28:32
# 3: 2021-03-04 3 18:25:55
# 4: 2021-03-04 4 18:23:00
# 5: 2021-03-04 5 18:20:00
# 6: 2021-03-04 6 18:15:58
# 7: 2021-03-04 7 18:11:41
# 8: 2021-03-04 8 18:10:57
# 9: 2021-03-04 9 18:10:33
#10: 2021-03-04 10 18:07:01