我需要在数据集中创建一个附加列,如果给定行中的列(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
}
您能告诉我我要去哪里吗?谢谢。
答案 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)