[英]Create a table based on filtering dataframe on progressive criteria with two variables in R
我有以下 dataframe,具有以下變量年齡(連續)、風險(連續)、疾病(0/1)。
例如;
age <- c(45, 50, 55, 60, 65);
risk <- c(5, 45, 70, 80, 50);
disease <- c(1,0,1,1,0)
我想創建一個表,其中列子集數據由一個變量(年齡> 40,年齡> 45,年齡> 50)和行由另一個(風險> 20,風險> 25等)和由計數填充的表/滿足列和行變量標准的那些觀察的摘要統計。
我打算使用dplyr
計算每個值,例如,
a <- df %>%
filter(age>40, risk >20) %>%
summarise(prop.dis = sum(disease)/n())
但是有沒有更短的方法來自動填充整個表,其中列通過增量標准對數據進行子集化,並且行相同?
如果我們需要獲取每個相應過濾器的比例,請使用map2
library(purrr)
library(dplyr)
agevec <- c(40, 45, 50)
riskvec <- c(20, 25, 30)
map2(agevec, riskvec, ~ df %>%
filter(age > .x, risk > .y) %>%
summarise(prop.dis = sum(disease)/n()))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.