我剛剛開始學習資料分析,我正在研究 google coursera 資料分析程式中的回圈案例研究。我正在嘗試制作 geom_col 但我做不到。
首先,我通過合并起點站名稱和終點站名稱創建了一個名為“路線”的新列現在有兩種型別的用戶“休閑”和“會員”。我想將前 10 條路線中的 geom_col 與休閑旅行和會員旅行并排顯示,以便于比較。
因此,我想要一個 geom_col,y 軸為路線,軸為成員和臨時用戶的旅行頻率,成員和臨時用戶并排,以便于比較。
這是僅包含相關列的原始資料集的示例:
ride_id route member_casual
1 A member
2 A casual
3 B member
4 C casual
5 D casual
There are 500 approx routes
uj5u.com熱心網友回復:
您可以使用該count()功能計算每個route 和member_casual組合的頻率。添加name=引數可讓您使用計數命名新列。slice_max()然后可以按我們稱為的新頻率列對行進行排序freq,然后選擇前 n (10) 行。的默認行為是保持平局,因此如果第 10 個值有平局slice_max(),您可能會得到超過 10 個結果。freq您可以添加引數with_ties = FALSE以僅回傳前 10 行,忽略freq第 10 行中的值可能具有的任何關系。然后繪制routeandfreq并告訴ggplot使用這些member_casual值填充條形顏色。將position="dodge"引數添加到geom_col(默認為“堆疊”),以便member_casual條形圖并排顯示,以便于比較。然后將coord_flip圖形翻轉為水平柱狀圖。
library(tidyverse)
dataframe |>
count(route, member_casual, name="freq") |>
slice_max(order_by = freq, n = 10) |>
ggplot(aes(route, freq, fill=member_casual))
geom_col(position="dodge")
coord_flip()
此外,如果您正在尋找每種會員型別的前 10 條路線(即休閑的前 10 條路線和會員的前 10 條路線,您可以添加group_by(member_casual)before slice_max()。
library(tidyverse)
dataframe |>
count(route, member_casual, name="freq") |>
group_by(member_casual) |>
slice_max(order_by = freq, n = 10) |>
ggplot(aes(route, freq, fill=member_casual))
geom_col(position="dodge")
coord_flip()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/474406.html
