gpt4 book ai didi

r - 在嵌套数据框中应用 purrr::map() 的问题

转载 作者:行者123 更新时间:2023-12-04 11:57:46 27 4
gpt4 key购买 nike

我正在研究 Hadley Wickham 的数据科学 R 的第 25 章“许多模型”https://r4ds.had.co.nz/many-models.html ,但是我在重新创建 25.2.2 中的示例时遇到了问题。

这是我到目前为止所拥有的(以及正在运行的):

require(gapminder); require(tidyverse); require(broom); require(modelr)

by_country <- gapminder %>% group_by(country,continent) %>% nest()
head(by_country)

# A tibble: 6 x 3
country continent data
<fct> <fct> <list>
1 Afghanistan Asia <tibble [12 × 4]>
2 Albania Europe <tibble [12 × 4]>
3 Algeria Africa <tibble [12 × 4]>
4 Angola Africa <tibble [12 × 4]>
5 Argentina Americas <tibble [12 × 4]>
6 Australia Oceania <tibble [12 × 4]>


然后定义 lm()适用于每个国家的数据集:
country_model <- function(df) {
lm(lifeExp ~ year, data = df)
}

然后下一行不起作用:
by_country <- by_country %>%
mutate(model = map(data,country_model))

带有错误信息
Error in eval(predvars, data, env) : object 'lifeExp' not found 

尽管在我看来,我所写的与哈德利章节中出现的相同。

我不确定这是否是最近出现的问题,但过去确实有效,因为其他人显然对示例有问题: https://github.com/hadley/r4ds/issues/766 (无解)

任何帮助将不胜感激!

最佳答案

您不需要两次重新定义“by_country”。

country_model <- function(df) {
lm(lifeExp ~ year, data = df)
}

by_country <- gapminder %>%
group_by(country,continent) %>%
nest()%>%
mutate(model = map(data,country_model))

关于r - 在嵌套数据框中应用 purrr::map() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58050279/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com