调整R迭代映射函数输出 将所有结果归入同一列并标记对应模型
方案1:直接调整映射逻辑生成目标结构(推荐,适配大量模型场景)
如果你的text_model函数输入单个模型后,返回的结果长度与data的行数完全匹配,可直接用以下代码一次性生成行追加的长表结构,无需先生成每个模型占独立列的宽表,内存占用更低:
library(tidyverse) result <- map_dfr(set_names(models), ~ data %>% mutate( pred_result = text_model(.x), model_id = .x ))
执行后pred_result列会存储所有模型的计算结果,model_id列会标记对应结果所属的模型(比如model001、model002等)。
方案2:基于现有宽表结果转换
如果你已经运行了原有代码得到了每个模型占独立列的宽表结果,直接用pivot_longer做长表转换即可:
# 执行你原有的代码得到宽表 wide_result <- data %>% bind_cols( map(.x = models,.f = text_model) %>% set_names(models) ) # 转换为目标长表结构 long_result <- wide_result %>% pivot_longer( cols = all_of(models), names_to = "model_id", values_to = "pred_result" )
内容的提问来源于stack exchange,提问作者viridius
相关产品推荐
相关产品推荐

