我知道这已经被问过了,但我认为我的问题有点不同(不管是葡萄牙语)。我有这个数据集:
df <- cbind(c(rep(2012,6),rep(2016,6)),
rep(c('Emp.total',
'Fisicas.total',
'Outros,total',
'Politicos.total',
'Receitas.total',
'Proprio.total'),2),
runif(12,0,1))
colnames(df) <- c('Year,'Variable','Value)
Run Code Online (Sandbox Code Playgroud)
我想对行进行排序,首先将具有相同年份的所有内容分组。之后,我希望Variable像这样订购该列:
我知道我可以使用arrange()fromdplyr来按年份排序。但是,我不知道如何将其与任何例行程序结合使用,factor并且order不会弄乱以前的按年排序。
有什么帮助吗?谢谢
我们创建一个自定义order的转换“变量”到factor与levels自定义指定order
library(dplyr)
df %>%
arrange(Year, factor(Variable, levels = c('Receitas.total',
'Fisicas.total', 'Emp.total', 'Politicos.total',
'Proprio.total', 'Outros.total')))
# A tibble: 12 x 3
# Year Variable Value
# <dbl> <chr> <dbl>
# 1 2012 Receitas.total 0.6626196
# 2 2012 Fisicas.total 0.2248911
# 3 2012 Emp.total 0.2925740
# 4 2012 Politicos.total 0.5188971
# 5 2012 Proprio.total 0.9204438
# 6 2012 Outros,total 0.7042230
# 7 2016 Receitas.total 0.6048889
# 8 2016 Fisicas.total 0.7638205
# 9 2016 Emp.total 0.2797356
#10 2016 Politicos.total 0.2547251
#11 2016 Proprio.total 0.3707349
#12 2016 Outros,total 0.8016306
Run Code Online (Sandbox Code Playgroud)
set.seed(24)
df <- data_frame(Year =c(rep(2012,6),rep(2016,6)),
Variable = rep(c('Emp.total',
'Fisicas.total',
'Outros,total',
'Politicos.total',
'Receitas.total',
'Proprio.total'),2),
Value = runif(12,0,1))
Run Code Online (Sandbox Code Playgroud)