[英]How to convert a date column of a R dataframe to a certain string format
我想将R中的数据框的列转换为具有字符串格式的新列,并仅提取例如日期或月份 。 数据框的格式可能如下所示,其中日期已经具有日期类型:
Name,Date,Salary
Bob,12/31/18,1000
Alice,10/28/18,100
John,05/06/17,200
因此目标df应该如下所示:
Name,Date,Day,Month,Salary
Bob,12/31/18,31,12,1000
Alice,10/28/18,28,10,100
John,05/06/17,06,05,200
使用format
。 如果列的顺序不重要,可以省略末尾的[...]
部分。
transform(DF, Day = format(Date, "%d"), Month = format(Date, "%m"))[
c("Name", "Date", "Day", "Month", "Salary")]
给予:
Name Date Day Month Salary
1 Bob 2018-12-31 31 12 1000
2 Alice 2018-10-28 28 10 100
3 John 2017-05-06 06 05 200
还有一个问题是,鉴于日期已经是一列,您是否真的需要首先添加“天”和“月”列。 根据需要使用它,在需要时即时提取它可能会更方便。
可复制形式的输入假定为:
Lines <- "Name,Date,Salary
Bob,12/31/18,1000
Alice,10/28/18,100
John,05/06/17,200"
DF <- read.csv(text = Lines)
DF$Date <- as.Date(DF$Date, "%m/%d/%y")
对于基本的R解决方案,我们可以尝试使用first as.Date
将您的字符串日期转换为真正的R日期。 然后,我们可以将这些日期转换为POSIXlt对象,以提取日和月分量。
x <- "12/31/18"
date <- as.Date(x, "%m/%d/%y")
day <- as.POSIXlt(date)$yday + 1
month <- as.POSIXlt(date)$mon + 1
day
month
[1] 365
[1] 12
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.