簡體   English   中英

如何將R數據框的日期列轉換為特定的字符串格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM