我有一个非常具体的问题。我的数据框看起来像这样:
我的问题是日期和日期列。目前它是这样的:
年 - 月 - 然后在当天的下一栏。
我希望它看起来像普通的日期列,就像年月日一样。所以我想把第二列中的日子换掉,然后用第一列中的01替换它们。
知道怎么做吗?
答案 0 :(得分:2)
我们可以使用dplyr
rear
和lubridate
个包。
library(readr)
library(dplyr)
library(lubridate)
df <- df %>%
mutate(Date = ymd(paste(year(Date), month(Date), parse_number(Day), sep = '-')))
parse_number(Day)
函数从Day
列获取数值。 year(Date)
从Date
得到年份,month(Date)
从Date
获得月份。
然后paste
将年 - 月 - 日与连字符组合为分隔符sep = '-'
。 ymd
将其转换为日期格式。 mutate(Date
会将新值插入Date
列。
答案 1 :(得分:2)
你去吧
library(lubridate)
library(tidyr)
library(dplyr)
df %>% unite(new_Date, Date, Day, sep = ' ') %>% mutate(new_Date = ymd(gsub("([0-9]{2} Day)", "", new_Date)))
这使用tidyr :: unite和lubridate :: ymd以及dplyr函数。