如果R中的陈述涉及日期

时间:2019-03-28 10:38:16

标签: r

我需要在数据集中创建一个附加列,如果给定行中的列(V1)显示日期早于25.07.17,则显示'1';如果显示相同列(V1),则显示'2'日期为25.07.17之后。

下面的代码创建了一个列,即“数据集”,但我希望每一行都是一个“ 2”,即使V1在25.07.17之后的行也是如此。

#add column to identify dataset
if(CombineddatainprogresscsvClean$V1<25.07.17 10:00){
  CombineddatainprogresscsvClean$Dataset=1
}else
{
    CombineddatainprogresscsvClean$Dataset=2
}

您能告诉我我要去哪里吗?谢谢。

2 个答案:

答案 0 :(得分:1)

尝试

CombineddatainprogresscsvClean$Dataset <- ifelse(CombineddatainprogresscsvClean$V1 < as.Date("25.07.17", format = "%d.%m.%y"), 1, 2)

要使其正常工作,您还必须将CombineddatainprogresscsvClean$V1转换为日期格式。

答案 1 :(得分:1)

如果还应考虑时间(小时),则应使用:

CombineddatainprogresscsvClean$Dataset <- ifelse(as.POSIXct(CombineddatainprogresscsvClean$V1,format = '%d.%m.%y %H:%M') < as.POSIXct('25.07.17 10:00', format = '%d.%m.%y %H:%M'), 1, 2)