我已經下載了資料框casos_hosp_uci_def_sexo_edad_provres_60_mas.csv,該資料框描述了西班牙感染 Covid-19 的人數,按省份、年齡、性別...從這個網頁分類。我讀取資料框并將其表示為:
db<-read.csv(file = 'casos_hosp_uci_def_sexo_edad_provres.csv')
顯示前五行
provincia_iso sexo grupo_edad fecha num_casos num_hosp num_uci num_def
1 A H 0-9 2020-01-01 0 0 0 0
2 A H 10-19 2020-01-01 0 0 0 0
3 A H 20-29 2020-01-01 0 0 0 0
4 A H 30-39 2020-01-01 0 0 0 0
5 A H 40-49 2020-01-01 0 0 0 0
資料框的前四列顯示省份名稱、人的性別、年齡組和日期,后四列顯示生病、住院、ICU 或死亡的人數。
我想用 R 找出傳染率最高的一天。為此,我必須為num_casoscolumn 的每個不同值對第五行的元素求和fecha。
我已經能夠計算出患病男性的數量hombresEnfermos=sum(db[which(db$sexo=="H"), 5])。但是,我認為必須有一種比手動計數更好的方法來檢查傳染性更高的日子。但是,我不知道如何。
有人可以幫幫我嗎?
uj5u.com熱心網友回復:
用于dplyr按日期獲取總數:
library(dplyr)
db %>% group_by(fecha) %>% summarise(total = sum(num_casos))
基礎 R 中的兩個替代方案:
data.frame(fecha = sort(unique(db$fecha)),
total = sapply(split(db, f = db$fecha), function(x) {sum(x[['num_casos']])}))
或者更簡單地說,
aggregate(db$num_casos, list(db$fecha), FUN=sum)
中的替代方案data.table:
library(data.table)
db <- as.data.table(db)
db[, list(total=sum(num_casos)), by = fecha]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/514657.html
標籤:r数据框循环日期和
上一篇:按定義的日期對資料框進行分組
