R-如何将列的一部分添加到数据框中的另一列?

时间:2017-12-05 19:18:45

标签: r date dataframe replace

我有一个非常具体的问题。我的数据框看起来像这样:

enter image description here

我的问题是日期和日期列。目前它是这样的:

年 - 月 - 然后在当天的下一栏。

我希望它看起来像普通的日期列,就像年月日一样。所以我想把第二列中的日子换掉,然后用第一列中的01替换它们。

知道怎么做吗?

2 个答案:

答案 0 :(得分:2)

我们可以使用dplyr rearlubridate个包。

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函数。