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



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

我有一行基本的代码:

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

以下是数据:

机场直达旅客
CAN 直接 100
戴高乐间接 5000
CMG 间接 200
DNM 直销 10000
洛杉矶国际机场间接 200
梅尔直销 20
YUL 间接 4000

你想研究的函数是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))

相关内容

  • 没有找到相关文章

最新更新