如何在Spread后保持订单

7
我想知道如何在展开操作后保持顺序。
data<-tibble(var=c("A","C","D","B"), score=c(1,2,4,3))

data_spread <-data%>%spread(key = var, value = score)

我希望保持c("A","C","D","B")的顺序。

1个回答

8

一种选择是将变量转换为factor类型,指定levels参数为'var'中的唯一元素,则可以确保order的顺序是出现的顺序。

library(dplyr)
library(tidyr)
data %>% 
      mutate(var = factor(var, levels = unique(var))) %>%
      spread(var, score)
# A tibble: 1 x 4
#      A     C     D     B
#  <dbl> <dbl> <dbl> <dbl>
#1     1     2     4     3

1
非常感谢您!! - user224050

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接