我需要创建一个带有垃圾桶的列,我发现this上一篇文章对我很有帮助。然而,我想要创建的bin不仅仅是另一列的分组间隔,还需要考虑来自第二列的阶乘数据。更准确地说,我想按季节和年份对渔获量进行分组,即它们被归入“冷”组(11-2月)、“暖”组(3-6月)和“暖”组(7-10月)以及相关年份的月份。
fish <- data.frame(month = sample(1:12,36,replace=T), year = sample(c(2015,2016,2017),36,replace=T))
fish <- fish[order(fish$year,fish$month),]
library(dplyr)
lev <- c(-Inf, 2, 6, 10, Inf)
lab <- c("cold", "warmer", "warm", "cold")
fish <- mutate(fish,season = cut(month, lev, labels = lab))
上面的代码(基于前面提到的post)将创建一个bin列。然而,我需要将“冷”组的1/2月部分与前一年相关联,即2016年1/2月应与2015年的“可能”组分组。任何帮助都将不胜感激!
干杯
发布于 2018-01-26 22:31:54
可以早点想到:只需添加另一个"year“列,其中Jan/Feb的值为"year"-1就可以了。
fish <- mutate(fish,seasonYY = ifelse(fish$month==1|fish$month==2,fish$year-1,fish$year))
以后的分析可以使用"new.year“和"season”来为正确的捕获物设置子集。
发布于 2018-01-26 22:03:18
这将会起到作用:
fish <- mutate(fish, season = case_when(month %in% c(1, 2, 11, 12) ~ "cold",
month %in% c(3, 4, 5, 6) ~ "warmer",
TRUE ~ "warm"))
https://stackoverflow.com/questions/48462675
复制相似问题