我有如下資料;
| 人員 ID (Uniq) | 疾病 | 生存 |
|---|---|---|
| 1 | 一種 | 1 |
| 2 | 乙 | 0 |
| 3 | 一種 | 0 |
| 4 | C | 1 |
| 5 | 乙 | 0 |
| 6 | D | 1 |
| 7 | C | 0 |
| 8 | 一種 | 1 |
| 9 | D | 0 |
| 10 | D | 1 |
我想從這個資料表中得到一個比率。這個比率的計算;
按疾病分類的存活率:按疾病分類的存活人數 (1) / 按疾病分類的總人數
作為這個計算的結果,我想創建一個表如下;
| 疾病 | 總人數 | 幸存者人數 | 奧蘭 |
|---|---|---|---|
| 一種 | 3 | 2 | 0.66 |
| 乙 | 2 | 0 | 0 |
| C | 2 | 1 | 0.5 |
| D | 3 | 2 | 0.66 |
我不知道從哪里開始,我應該寫什么樣的代碼才能得到這樣的表。
uj5u.com熱心網友回復:
我會用dplyr:
library(dplyr)
df %>% group_by(Disease) %>%
summarize(Total=n(), Survivors=sum(Survival), Oran=mean(Survival))
輸出:
Disease Total Survivors Oran
<chr> <int> <int> <dbl>
1 A 3 2 0.667
2 B 2 0 0
3 C 2 1 0.5
4 D 3 2 0.667
uj5u.com熱心網友回復:
使用base R:
tab<-t(rbind(table(df$Disease),
tapply(df$Survival,df$Disease,sum),
tapply(df$Survival,df$Disease,mean)))
tab<-as.data.frame(tab)
names(tab)<-c('Frequency','Survived','Ratio')
tab
# Frequency Survived Ratio
# A 3 2 0.6666667
# B 2 0 0.0000000
# C 2 1 0.5000000
# D 3 2 0.6666667
資料集:
df<-data.frame(Disease=c('A','B','A','C','B','D','C','A','D','D'),
Survival=c(1,0,0,1,0,1,0,1,0,1))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/352486.html
標籤:r
上一篇:在資料幀中的NA之前捕獲值
