将数字变量转换为日期(格式为 DD-MMM-YY)

Converting number variable to date (formatted DD-MMM-YY)

R 中的数据框。它显示了在不同日期发生的许多名称和事件。我需要日期列显示为 02-Jan-16 格式而不是“2”(见第一行)。

如有任何建议,我们将不胜感激。

NAME    date    modality
Name.1   2      HA
Name.2   2      H
Name.2   4      H
Name.2   6      H
Name.2   8      H
Name.2   9      H
Name.2   11     H
Name.2   13     H
Name.2   15     H
Name.2   16     H
Name.2   18     H
Name.2   20     H
Name.2   22     H
Name.2   23     H
Name.2   25     H
Name.2   27     H
Name.2   29     H
Name.2   30     H
Name.3   2      HA
Name.3   3      HA
Name.3   4      HA
Name.4   1      H
Name.4   2      H
Name.4   3      H
Name.4   4      H
Name.4   5      H
Name.4   6      H
Name.4   7      H
Name.4   8      H
Name.4   9      H
Name.4   10     H
Name.4   11     H
Name.4   12     H
Name.4   13     H
Name.4   14     H
Name.4   15     H
Name.4   16     H
Name.4   17     H
Name.4   18     H
Name.4   19     H
Name.4   20     H
Name.4   21     H
Name.4   22     H
Name.4   23     H
Name.4   24     H
Name.4   25     H
Name.4   27     H
Name.4   28     H
Name.4   29     H
Name.4   30     H
Name.4   31     H
Name.5   17     HA
Name.5   18     HA

只是5个名字的集合,还有更多需要处理

由于日期列中只有一个数字,我假设它们是 2016 年 1 月的日子。我创建了一个数据框,类似于你的:

NAME <- c("Name1", "Name2", "Name3")
date <- c("2","2","4")
modality <- c("HA","H","H")
df <- data.frame(NAME, date, modality)

从这点来说,简单paste就可以做到

df$date <- paste(df$date,"Jan-16", sep="-")
df

哪个returns如你所愿,

   NAME     date modality
1 Name1 2-Jan-16       HA
2 Name2 2-Jan-16        H
3 Name3 4-Jan-16        H

此外,您可以在日期列上使用 as.Date 函数将它们转换为具有适当格式的日期。