我有以下問題,我試圖用R來解決:
"對于每一年,首先要計算每個國家的平均觀測值(為了考慮到國家可能每年有多個值的設定,注意在這個資料集中是如此)。
"對于每一年,首先計算每個國家的平均觀察值(以考慮到國家每年可能有超過1個值的設定,注意在這個資料集中這是真的)。然后按照每年MMR的增加對各國進行排名。 計算所有年份的平均排名,提取所有年份中排名最低的10個國家的平均排名,并列印出結果表。"
這就是我的想法。
這是我目前所掌握的情況:
dput(mmr)
tib2 <-mmr %>%
group_by(country,year) %>%
summarise(mean = mean(mmr)) %> %
arrange(mean) %> %
group_by(country)
tib2
我的輸出結果非常接近我需要的位置,我只需要讓每個國家只有一行(這一行有每個國家的平均排名)。
結果是這樣的:
Output謝謝你!
uj5u.com熱心網友回復:
在沒有資料的情況下,不確定這樣做是否可行?
tib2 <- mmr %>%
group_by(country,year) %>%
summarise(mean1 =平均(mmr)) %> %
ungroup() %> %
group_by(year) %>%
mutate(rank1 = rank(mean1)) %> %
ungroup() %> %
group_by(country) %>%
summarise(rank = mean(rank1))%> %
ungroup() %> %
arrange(rank) %>%
slice_head(n=10)
uj5u.com熱心網友回復:
只要重復同樣的分析,但不是按(國家,年份)分組,而是按國家分組即可:
tib2 <- mmr %>%
group_by(country, year) %>%
summarise(mean_mmr = mean(mmr)) %> %
arrange(mean) %> %
group_by(country) %>%
summarise(mean_mmr = mean(mean_mmr)) %> %
arrange(mean_mmr) %> %
ungroup() %>%
slice_min(n=10)
tib2
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/332224.html
標籤:
上一篇:面試官:如何實作掃碼登錄功能?
下一篇:使用if陳述句添加一個列
