我对R上的嵌套数据框有问题。我使用gapminder进行了练习,我遵循了数据科学书的作者的代码,如下所示:
library(gapminder)
by_country <- gapminder %>%
group_by(country, continent) %>%
nest()
通过这种方式,gapminder数据集被嵌套。每个国家/地区只有1行,而与该国家/地区有关的所有数据都在“数据”列中。
然后,我创建了一个函数,用于映射嵌套数据框的所有单元格。调用该函数,“数据”列的每个单元格都会有一个个人模型。
country_model <- function(df) {
lm(lifeExp ~ year, data = df)
}
最后,我试图通过调用上一个函数在by_country数据集中创建一个新列,但它说 eval(predvars,data,env)中的错误:找不到对象'lifeExp'。
by_country <- by_country %>%
mutate(model = map(data,country_model))
lifeExp是每个数据单元中的一列,但它说没有找到。老实说,我不明白问题出在哪里,请问有人可以帮助我吗?
答案 0 :(得分:0)
我在使用一组相似的软件包版本时遇到了此错误,并且在更新dplyr,tidyr和purrr之后,代码成功运行了。
仅加载tidyverse,modelr和gapminder之后,显示sessionInfo()在我的会话中的截断输出。
祝你好运!
other attached packages:
[1] gapminder_0.3.0 modelr_0.1.2 forcats_0.3.0 stringr_1.4.0 dplyr_0.8.3 purrr_0.3.2 readr_1.1.1 tidyr_1.0.0
[9] tibble_2.1.3 ggplot2_3.2.0 tidyverse_1.2.1