我正在尝试查找某一列中每个组在另一列中出现次数最多的名称。我是R的新手,正在努力理解其他解决方案是如何实现这一点的(我发现的解决方案似乎解决了上面的第一部分或第二部分)。
数据集的示例如下所示:
Australia City | International City | Port_Region | Airline | Month_num
"Melbourne" | "Kular Lumpar" | "East Asia" | "Air Asia" | 1
"Melbourne" | "Auckland" | "Oceania" | "Air New Zealand" | 1
"Melbourne" | "Auckland" | "Oceania" | "Air New Zealand" | 1
"Melbourne" | "Auckland" | "Oceania" | "Air New Zealand" | 2我正在尝试找到澳大利亚城市每月出现的最多的航空公司,并在抖动图表中显示。
我遇到的问题是按航空公司对航班进行分组,并找到最好的航空公司。
我正在尝试的当前代码是:
sort(table(airlineMelb$Airline),decreasing = TRUE)[1:5]
airlineMelbPop <- c("Air New Zealand", "Air Asia")
as.factor(airlineMelbPop) %>%
ggplot(aes(x=Month_num, y=Port_Region, color=Airline)) +
labs(title="Most popular airlines per month for Melbourne") +
geom_jitter()任何帮助都将不胜感激。
编辑:我现在可以得到以下内容了。这似乎是在正确的轨道上,它显示,例如,'Qantas Airways‘在第9个月有248次。
> dt = as.data.table(airlineMelb)
> dt[, .(nobs = .N), by = .(Australian_City, Month_num, Airline)][order(-nobs)]
Australian_City Month_num Airline nobs
1: Melbourne 9 Qantas Airways 248
2: Melbourne 12 Qantas Airways 242
3: Melbourne 3 Qantas Airways 224
4: Melbourne 6 Qantas Airways 224
5: Melbourne 1 Qantas Airways 195
---
494: Melbourne 1 SriLankan Airlines 2
495: Melbourne 1 LATAM Airlines 2
496: Melbourne 1 Scoot Tigerair 2
497: Melbourne 1 Japan Airlines 2
498: Melbourne 1 Air Canada 2如何将其与ggplot2一起用于绘制每个月的前5家航空公司的图表(上面只显示了5个月?
发布于 2020-09-08 15:59:07
使用data.table,您可以这样做
library(data.table)
dt = as.data.table(airlineMelb)
dt_res = dt[, .(nobs = .N), by = .(city, month, airline)][order(-nobs)].N为您提供by中组内的观察次数,并按降序显示每个航空公司、每个城市和每个月的观察次数。
发布于 2020-09-08 16:20:01
您可以使用data.table获取计数,并从排序的计数列中选择5行
library(data.table)
dt=data.table(airlineMelb)
dt[,counts:=sort(.N,descending=T),by=c("Australia City","Month_num","Airline")]
dt_top_5=dt[,.SD[1:5],by=c("Australia City","Month_num","Airline")]https://stackoverflow.com/questions/63789146
复制相似问题