几十年来,我从 gss 数据(https://gss.norc.org/)关联数据构建了一个数据集
env_data <- select(gss, year, sex, degree, natenvir) %>% na.omit()
env_datadecades <- env_data %>%
mutate(decade=as.factor(ifelse(year<1980,
"70s",
ifelse(year>1980 & year<=1990,
"80s",
ifelse(year>1990 & year<2000, "90s", "00s")))))
我想用ggplot2
and来绘制它,facet_grid()
但顺序不对,所以我把它做成了在其他地方看到的
set.seed(6809)
env_datadecades$decade <- factor(env_datadecades$decade,
levels = c("Seventies", "Eighties", "Nineties", "Twothous"))
它第一次起作用,但是当我再次尝试运行代码时,我得到NA
了十年内的所有数据。怎么了?
我只是做了一个简单的年份数据集
df <- data.frame(Years = sample(1970:2010, 20, replace = T))
通过这种方法将其转换为所需的因子,
df <- df %>%
mutate(Decades = case_when(Years < 1980 ~ "Seventies",
1980 <= Years & Years < 1990 ~ "Eighties",
1990 <= Years & Years < 2000 ~ "Nineties",
2000 <= Years ~ "TwoThousands"))
df$Decades <- factor(df$Decades, levels = c("Seventies", "Eighties", "Nineties", "TwoThousands"), ordered = T)
现在尝试刻面。
我认为您的代码的问题在于,当您第一次将变量转换为因子时,您给了级别一组名称,然后在第二行代码中,您给了它们另一组名称。坚持同一套,它应该可以工作
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句