我有一个名为" fish"的数据框。其中包含质量,长度和一年中的变量等变量。我需要按月制作一个鱼的箱线图,但没有月份变量,只有一年中的一天(即1:365)。我怎样才能将30天的时间分组来表示月份然后命名它们以便我可以制作一个箱形图?我附上了数据截图。
答案 0 :(得分:0)
您可以使用此解决方案:
#load package
require(tidyverse)
#make dataframe
n <- 100
tmp <- tibble(year = rep(c(1994,1994),n/2),day = c(1:n),lenght_mm = rnorm(n),mass_g = rnorm(n,5))
#add month column
tmp <- tmp %>%
mutate(month = as.factor(ifelse(day%%30/30 != 0,day%/%30 +1,day%/%30)))
#make plot
tmp %>%
ggplot(aes(month,lenght_mm,col = month)) +
geom_boxplot() +
theme_bw()
答案 1 :(得分:0)
我会添加一个包含完整日期的新列:
as.Date(104, origin = "2014-01-01")
从那以后你可以按月分组。
months(as.Date(104, origin = "2014-01-01"))
放在一起:
df %>% mutate(date = as.Date(day_of_the_year, origin = "2014-01-01"),
month = months(date))