所以我是 R 的新手,在我們的最后一項任務中,我們希望對每個國家和每個列的資料進行分位數。
我們已經嘗試使用 apply 函式,使用回圈來做到這一點,但我們還沒有能夠破解它:
Ano Paises Males.total
1 2011 Belgium 19.5
2 2011 Bulgaria 46.4
3 2011 Czechia 11.9
4 2011 Denmark 17.5
5 2011 Germany (until 1990 former territory of the FRG) 18.5
6 2011 Estonia 22.9
Females.total Malessinterminar Females.sin.terminar malespostsecundaria
1 21 33 34.3 16.7
2 49.7 72.1 75.1 42.1
3 16.4 32.3 28.6 11.2
4 17.9 24.6 24.4 16.8
5 21.3 38.5 34.7 21.5
6 22.5 34 35.4 24.3
Femalespostsecundaria Males.universidad Femalesuniversidad
1 19 10.6 10.1
2 45.4 17.1 24.9
3 15.7 4.1 5.4
4 17.8 11.9 12.1
5 21.5 10.3 13.4
6 27 10.5 10.7
我們已經嘗試過這個回圈,我們希望按國家/地區處理每一列資料。問題是這個操作給了我們更多的結果,所以回圈不計算它:
estadosunicos<-unique(paises)
resultados<-matrix(0,length(estadosunicos),ncol = 3)
for (i in 1:length(estadosunicos)){
selec<-estadosunicos[i]
resultados[i,1]<-males.sin.terminar[paises==estadosunicos][females.sin.terminar<quantile(females.sin.terminar, 0.25)]
resultados[i,2]<-males.sin.terminar[paises==estadosunicos][males.sin.terminar>quantile(males.sin.terminar,0.25)& males.sin.terminar<quantile(males.sin.terminar,0.75)]
resultados[i,3]<-males.sin.terminar[paises==estadosunicos][males.sin.terminar>quantile(males.sin.terminar,0.75)]
}
rownames(resultados)<-estadosunicos
所以我們不知道該怎么做。我們希望按國家/地區獲取這些資料的 25%、50% 和 75%,但我們有 300 多行資訊,因此這些國家/地區在不同年份會重復多次。我們該怎么做?非常感謝你的幫助!
uj5u.com熱心網友回復:
我們可以按操作進行分組,然后quantile通過回圈列來獲取每個數字列across,然后回傳一個list可以轉換為列的物件unnest_wider等。
library(dplyr)
df1 %>%
select(-Ano) %>%
group_by(paises) %>%
summarise(across(where(is.numeric), ~
list(as.list(quantile(.x, prob = c(.25, 0.5, 0.75)))))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/430480.html
上一篇:dplyr加入資料集的解決方案
