ifelse尝试从Month列

时间:2017-06-30 19:18:05

标签: r date if-statement conditional

我有一个大型数据集,我目前正在尝试根据冬季(9月 - 3月)或夏季(4月 - 8月)的月份创建一列。我遇到的大多数事情都是为了帮助分裂,想要分成4个季节,对于我的数据我需要根据月份专门进入这两个季节。我有

中的Day列

"%m/%d/%Y"

所以我创建了一个只有月份的列

TAD_rawdata$Month <- format(as.Date(TAD_rawdata$Day), "%m")

给了我一个字符串,月份为“01” - “12”

所以我尝试使用ifelse语句创建我的季节专栏:

TAD_rawdata$Season <- ifelse (TAD_rawdata$Month == c("04", "05", "06", "07", "08"), "SUMMER", "WINTER" )

但它给了我这个错误

警告讯息: 在TAD_rawdata $ Month == c(“04”,“05”,“06”,“07”,“08”):   较长的物体长度不是较短物体长度的倍数

然后它似乎随机分配冬季或夏季,就像月份将是例如4(所以应该是夏天),但它会给它夏季和冬季....

请帮助:)谢谢

1 个答案:

答案 0 :(得分:0)

尝试使用%in%代替==

TAD_rawdata$Season <- ifelse (TAD_rawdata$Month %in% c("04", "05", "06", "07", "08"), "SUMMER", "WINTER" )