使用fct_collapse标记值并对数据框列表内指定分组运行回归
R 列表数据集批量折叠分组与回归实现
- 首先加载所需依赖包
library(dplyr) library(forcats)
- 构造示例数据列表
Iris1 <- iris Iris2 <- iris Iris3 <- iris data_list <- list(Iris1, Iris2, Iris3)
- 批量处理全流程代码
注意:原有单数据集写法直接将Sepal.Length数值列替换为因子分组列,会导致后续回归的响应变量类型错误无法运行,因此以下代码新增独立的分组列sl_group存储折叠结果,保留原始Sepal.Length数值用于建模。
result_list <- lapply(data_list, function(df) { # 执行因子折叠生成分组列 df <- df %>% mutate( sl_group = fct_collapse( as.character(Sepal.Length), Group1 = as.character(5:7), Group2 = as.character(3:5) ) ) %>% # 筛选Group1分组 filter(sl_group == "Group1") # 拟合线性回归模型 model <- lm(Sepal.Length ~ Petal.Length, data = df) # 自定义返回内容,这里同时返回处理后数据和拟合模型 return(list(processed_data = df, fit_model = model)) })
- 结果调取示例
查看第一个数据集的模型拟合结果:
summary(result_list[[1]]$fit_model)
如果确实需要直接修改Sepal.Length列为折叠后的因子,可将mutate部分的sl_group =替换为Sepal.Length =,同时注意调整回归公式的响应变量为对应可用的数值列。
内容的提问来源于stack exchange,提问作者Lelleo
相关产品推荐
相关产品推荐

