如何使用dplyr在R中的不同子集上运行一段代码
我有一个必须修改的数据集。 我想为dplyr管道中的不同子集运行一段不同的代码。 数据处理ICU患者的血糖值。 看起来是这样的:如何使用dplyr在R中的不同子集上运行一段代码,r,dplyr,R,Dplyr,我有一个必须修改的数据集。 我想为dplyr管道中的不同子集运行一段不同的代码。 数据处理ICU患者的血糖值。 看起来是这样的: dfavg <- df %>% group_by(patientid) %>% mutate(icuoutcome = ifelse(row_number() != n(), 0, icuoutcome)) %>% mutate(strata = days) %>% mutate(survtime = max(days)-
dfavg <- df %>%
group_by(patientid) %>%
mutate(icuoutcome = ifelse(row_number() != n(), 0, icuoutcome)) %>%
mutate(strata = days) %>%
mutate(survtime = max(days)-days) %>%
group_by(days, add = TRUE) %>%
mutate(gly_mean = mean(glycaemia))
dfavg%
分组依据(患者ID)%>%
突变(icuoutcome=ifelse(行号()!=n(),0,icuoutcome))%>%
突变(地层=天数)%>%
变异(生存时间=最大(天)-天)%>%
分组依据(天,添加=真)%>%
突变(gly_平均值=平均值(血糖))
但是,我只在患者入住ICU的前5天需要此代码。
在此之后,我需要另一个代码运行6到15天。
我尝试使用过滤器(天我们可以
根据“天”分割数据,并在列表
输出上应用相应函数的列表
library(dplyr)
library(purrr)
split(df, df$days > 5) %>%
map2(funslist, ~ .y(.x))
使用一个小的可重复的例子
data(mtcars)
split(mtcars$mpg, mtcars$vs) %>%
map2_dbl(list(mean, max), ~ .y(.x))
因此,我分割数据,列出该部分数据所需的所有单独函数,然后使用map2为该数据运行这些函数?我认为在一个dplyr管道?@JorandeBock中是不可能的。您可以创建一个函数列表,如list(mean,max)
然后应用。因为我不知道要测试的第二个函数或示例数据,所以我不可能在这里编写。是否可以使用过滤器(days@JorandeBock是的,这是可能的,但是map2_-dfr
将提供一个单一的data.frame输出