【发布时间】:2017-11-08 21:28:33
【问题描述】:
我以 mtcars 数据集为例来说明我的问题。我对每种气缸类型进行了线性回归,并使用 map_df 将所有模型结果放在一起。 (下面的代码和输出)。我想要做的是添加另一列名为“圆柱体”(4,4,6,6,8,8)。如何在 map_df 中做到这一点?当我添加参数 .id='cylinder' 时,我只得到一列作为 1、1、2、2、3、3。提前非常感谢。
library(purrr)
cyls <- c(4,6,8)
map_df(cyls, ~tidy(lm(hp~wt,data=mtcars %>% filter(cyl == .x))))
【问题讨论】:
-
您是否愿意接受循环字符向量的替代方法?我可能会将
split数据集放入圆柱组中,在这种情况下.id会起作用:split(mtcars, mtcars$cyl) %>% map_df(~tidy(lm(hp ~ wt, data = .)), .id = "cylinder") -
您还可以设置
cyls的名称以在您当前的工作流程中使用map_df中的.id:cyls = set_names(cyls) -
@aosmith 谢谢。我不接受替代品。我知道该怎么做。但我需要弄清楚如何在我的实际工作中使用 map_df。
-
@aosmith 是的。那可行。非常感谢!