r-如何将缩写的月份大规模替换为完整的月份名称,并创建一个函数在多列上执行此操作



所以我有一个excel表加载到R中,其中包含多个日期。我需要把所有的东西都转换成一个可以用R阅读的实际日期,但按照表格的方式(我没有做到(,所有的日期都很混乱,默认情况下都不可读。我还试着通过将设置从";文本";至";"长期";但对R.没有任何帮助

到目前为止,我已经能够使用separate()函数两次(一次用于年份,两次以嵌套方式用于月份和日期(将一个日期列分隔为三列。日期和年份列现在设置为as.numeric()。现在我所要做的就是把搞砸的月份转换成R中实际可读的东西,这样我就可以进行完整的日期转换。

我想把这个变成这个:

Month Date        Readable Month
Jan                  January
Feb                  February
Mar                  March
.                     .
.                     .
July                 July
June                 June

它们都是我数据帧中的chr。我需要用这个修复很多列。

一旦我能弄清楚最后一步,我就计划创建一个函数来自动完成这个过程,并创建一个新的";日期";列中具有在R中可读的日期;Full_ Date;我需要到达但尚未到达的栏。

Month      Day      Year             Full_Date
January      1      1999             1999-01-01
March       21      2019             2019-03-21

我的代码——尽管可能不是最有效的:

birth_data <- data.frame(
Brirth_Month = separate(
separate(play_data, col = "Birth", into = c("B_M_D", "B_Year"), sep = "\,"),
col = "B_M_D",
into = c("B_Month", "B_Day"),
sep = " ")$B_Month,
Brirth_Day = as.numeric(separate(
separate(play_data, col = "Birth", into = c("B_M_D", "B_Year"), sep = "\,"),
col = "B_M_D",
into = c("B_Month", "B_Day"),
sep = " ")$B_Day),
Birth_Year = as.numeric(separate(play_data, col = "Birth", into = c("B_M_D", "B_Year"), sep = "\,")$B_Year)
)
birth_data

编辑我制作的原始数据示例,但不是真实日期,只是由我随机制作的

play_data <- data.frame(
Birth = c("Jan 23, 2019", "Feb 23, 1998", "June 3, 2003", "Oct 7, 2007", "Feb 28, 2004", "Apr 19, 2014", "Mar 11, 1988", "Sept 30, 2011")
)

str(playdate)
as.Date(dates$Birth)

有了lubridate,这就起作用了:

library(lubridate)

play_data$Birth <- mdy(play_data$Birth)

最新更新