我在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
答案 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))