在fct_reorder
help文件中,对boxplot进行举例,因此这里也将使用箱形图进行举例说明。
boxplot(Sepal.Width ~ Species, data = iris)
boxplot(Sepal.Width ~ fct_reorder(Species, Sepal.Width), data = iris)
boxplot(Sepal.Width ~ fct_reorder(Species, Sepal.Width, .desc = TRUE), data = iris)
library(RODBC)
impala <- odbcConnect("Impala")
sqlQuery(impala, 'select count(1) from opd.mkt_m1104_login_cjf_1')
图表的大小。
jianfeng <- sqlQuery(impala, 'select * from opd.mkt_m1104_login_cjf_1')
library(tidyverse)
jianfeng1 <- jianfeng %>%
mutate(
is_apply = as.factor(is_apply),
is_apply = fct_relevel(is_apply, '1'),
is_apply_time = paste(is_apply, marketingtime, sep = '_'),
is_apply_time = fct_reorder2(is_apply_time, is_apply, marketingtime, .desc = F)
) %>%
# .[,'is_apply_time'] %>%
# str()
ggplot(aes(x = is_apply_time, y = appdis)) +
geom_boxplot() +
theme(axis.text.x = element_text(angle = 70, hjust = 1)) +
xlab('')
jianfeng1
ggsave('jianfeng1.png')
fct_reorder2(f, x, y, fun = last2, ..., .desc = TRUE)
的默认格式中,
先对x
排序,再对y
排序,
因此如果字段为A_B
想让A的level优先排序的话,那么应该控制x = B
和y = A
。
另外注意,.desc = TRUE
这是默认条件,因此要设置成.desc = F
。
fct_relevel
的具体参考例子。
f <- factor(c("a", "b", "c", "d"))
fct_relevel(f)
fct_relevel(f, "c")
fct_relevel(f, "b", "a")