有一個表格,其形式如下:
ID | Date | Time
A 2021-07-26T00。 00:00. 000 0000 1:00AM
b 2021-08-13T00。 00:00. 000 0000 10:00PM
資料。 frame(ID = c("A", "B")。 日期= c("2021-07-26T00。 00:00. 000 0000", " 2021-08-13T00:00:00. 000 0000")。 時間 = c("1: 00AM", "10:00PM"))
就像上面的資料框架一樣,只是Date是一種資料時間格式。我想把時間添加到日期時間中,給定一個日期時間的向量,其中所有的時間部分目前都是0.
。預期輸出:
ID | new_date_time
A 2021-07-26 01。 00: 00
b 2021-08-13 22。 00: 00
uj5u.com熱心網友回復:
我們可以用lubridate/str_replace進行轉換,即用str_replace將從'T'開始的子串替換為'time'列,用lubridate的ymd_hm進行轉換
library(dplyr)
library(lubridate)
library(stringr)
df1 %>%
transmute(ID, new_date_time = ymd_hm(str_replace(date,/span> "T. *","T.
str_c(' ', str_pad(time, 寬度= 7。 墊= '0')))))
輸出
ID new_date_time
1 A 2021-07-26 01。 00: 00
2 B 2021-08-13 22。 00: 00
或者也可以做
library(parsedate)
df1 %>%
mutate(date = ymd_hms(date)。 時間 = format(parse_date(time),>
'%H:%M:%S') %>%
transmute(ID, new_date_time = ymd_hms(str_c(date, ' ', time)))
ID new_date_time
1 A 2021-07-26 01。 00: 00
2 B 2021-08-13 22。 00: 00
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/332215.html
標籤:
上一篇:如何將函式引數分配給變數名稱
下一篇:如何在R中把類別轉換為數字?
