对每个嵌套数据集执行线性回归
现在,您已经把每个国家的数据分成独立的数据集并放在 data 列中,需要为每个数据集拟合一个线性模型。
purrr 中的 map() 函数会将一个公式应用到列表中的每个元素,其中 . 代表当前的单个元素。例如,您可以给一个数字列表的每个元素加 1:
map(numbers, ~ 1 + .)
这意味着要对每个数据集拟合一个模型,您可以这样做:
map(data, ~ lm(percent_yes ~ year, data = .))
其中 . 代表 by_year_country 中 data 列里的每个元素。请回忆,data 列中的每个元素都是与某个特定国家相关的数据集。
本练习是课程的一部分
案例研究:R 中的探索性数据分析
练习说明
- 加载
tidyr和purrr包。 - 完成嵌套后,在
mutate()中使用map(),对每个数据集(即by_year_country中data列的每个元素)执行线性回归,用year解释percent_yes。将结果保存到model列。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Load tidyr and purrr
# Perform a linear regression on each item in the data column
by_year_country %>%
nest(-country)