如何将此日期时间列分成不同的列?
How can I separate this date time column into different columns?
我目前正在尝试将我的日期和时间数据分成单独的列。
我的数据格式为dd/mm/yyyyhh:mm:ssa.m(或p.m)。我需要做的是将日期和时间分成两列。然后将我的日期分为日、月和年。我还想将时间转换为 24 小时制。我尝试过使用 strsplit、as.Date、许多其他方法,但我仍然无法将数据获取到可以实际使用它做任何事情的程度。刚刚出现了无数错误。
为了便于理解,我的日期和时间数据列位于一个更大的数据集中。此列所需信息的标题是 'Date_Time'。在此列中,示例日期为“17/09/2019 9:15:27 a.m。”。正如您所想象的那样,尝试使用它是非常令人沮丧的。
我理想中想要的是...
日月年时
17 9 2019 09:15:27
...同时仍保留原始 Date_Time 列
你可以把它转换成POSIXct
然后用format
提取日月年和时间。
x <- c("17/09/2019 9:15:27 a.m.", "17/09/2019 9:15:27 p.m.")
x <- gsub("\.", "", x) #Remove the . in a.m.
x <- as.POSIXct(x, format="%d/%m/%Y %I:%M:%S %p") #convert to POSIX
data.frame(day = format(x, "%d"),
month = format(x, "%m"),
year = format(x, "%Y"),
time = format(x, "%T"))
# day month year time
#1 17 09 2019 09:15:27
#2 17 09 2019 21:15:27
如果只拆分成列就足够了,我会使用 strsplit
并在 /
或
.
上拆分
x <- c("17/09/2019 9:15:27 a.m.", "17/09/2019 9:15:27 p.m.")
do.call(rbind, strsplit(x, "[/ ]"))
# [,1] [,2] [,3] [,4] [,5]
#[1,] "17" "09" "2019" "9:15:27" "a.m."
#[2,] "17" "09" "2019" "9:15:27" "p.m."
我目前正在尝试将我的日期和时间数据分成单独的列。
我的数据格式为dd/mm/yyyyhh:mm:ssa.m(或p.m)。我需要做的是将日期和时间分成两列。然后将我的日期分为日、月和年。我还想将时间转换为 24 小时制。我尝试过使用 strsplit、as.Date、许多其他方法,但我仍然无法将数据获取到可以实际使用它做任何事情的程度。刚刚出现了无数错误。
为了便于理解,我的日期和时间数据列位于一个更大的数据集中。此列所需信息的标题是 'Date_Time'。在此列中,示例日期为“17/09/2019 9:15:27 a.m。”。正如您所想象的那样,尝试使用它是非常令人沮丧的。
我理想中想要的是...
日月年时
17 9 2019 09:15:27
...同时仍保留原始 Date_Time 列
你可以把它转换成POSIXct
然后用format
提取日月年和时间。
x <- c("17/09/2019 9:15:27 a.m.", "17/09/2019 9:15:27 p.m.")
x <- gsub("\.", "", x) #Remove the . in a.m.
x <- as.POSIXct(x, format="%d/%m/%Y %I:%M:%S %p") #convert to POSIX
data.frame(day = format(x, "%d"),
month = format(x, "%m"),
year = format(x, "%Y"),
time = format(x, "%T"))
# day month year time
#1 17 09 2019 09:15:27
#2 17 09 2019 21:15:27
如果只拆分成列就足够了,我会使用 strsplit
并在 /
或
.
x <- c("17/09/2019 9:15:27 a.m.", "17/09/2019 9:15:27 p.m.")
do.call(rbind, strsplit(x, "[/ ]"))
# [,1] [,2] [,3] [,4] [,5]
#[1,] "17" "09" "2019" "9:15:27" "a.m."
#[2,] "17" "09" "2019" "9:15:27" "p.m."