R:在数据透视表中对值进行排序(rpivottable)

时间:2016-05-27 12:04:24

标签: r pivot-table rpivottable

我在R中使用PivotTable是新的,我希望对表中的值进行排序(从最大到最小)(" vals"在R中)。我正在处理乘客数据,我希望最大数量的乘客出现在桌子的第一排。它现在按照机场名称(我的行)按字母顺序排序,但我更感兴趣的是按乘客数量(表格中的值)对其进行排序。 感谢

我有一个基本的代码行:

rpivotTable(data1, rows="Airport", col="Direct", aggregatorName="Sum", 
                                                vals="Passengers", rendererName="Heatmap")

以下是数据:

  

机场直达乘客
  CAN Direct 100
  CDG间接5000
  CMG间接200
  DNM Direct 10000
  LAX Indirect 200
  MEL Direct 20
  YUL间接4000

1 个答案:

答案 0 :(得分:0)

您要学习的功能是order。要在将来分享您的示例数据,您可以使用dput(data1)并将内容复制并粘贴到问题中。

data1 <- structure(list(Airport = structure(1:7, .Label = c("CAN", "CDG", 
"CMG", "DNM", "LAX", "MEL", "YUL"), class = "factor"), Direct = structure(c(1L, 
2L, 2L, 1L, 2L, 1L, 2L), .Label = c("Direct", "Indirect"), class = "factor"), 
    Passengers = c(100L, 5000L, 200L, 10000L, 200L, 20L, 4000L
    )), .Names = c("Airport", "Direct", "Passengers"), class = "data.frame", row.names = c(NA, 
-7L))

使用订单,我们可以按您的意愿安排您的数据

data1[order(data1$Passengers, decreasing = TRUE), ]

您可以执行更多多项安排,例如按Direct排序,然后按Passengers排序

data1[order(data1$Direct, data1$Passengers), ]

但前一行要求所有排序都是升序或全部降序。如果您想要混音,我建议您使用dplyr

library(dplyr)
arrange(data1, Direct, desc(Passengers))
相关问题