←
PDF 435 / 520 Exercises
→
English · PDF 435
Original PDF page 435
中文 · PDF 435

练习

    1. 线性趋势对于整体趋势来说似乎有点过于简单。使用二次多项式能做得更好吗?你该如何解释二次项的系数?(提示:你可能需要转换 year,使其均值为零。)
    1. 探索其他可视化各大洲 R 分布的方法。 2 你可以尝试 ggbeeswarm 包,它提供了与抖动类似的避免重叠的方法,但使用的是确定性方法。
    1. 要创建最后一个图(展示模型拟合最差的国家数据),我们需要两个步骤:先创建一个每个国家对应一行的数据框,然后将其半连接(semi-join)到原始数据集。如果我们使用 unnest() 而不是 unnest(.drop = TRUE),就可以避免这个连接。怎么做?

列表列

现在你已经了解了管理多个模型的基本工作流程,让我们回过头来深入了解一些细节。在本节中,我们将更详细地探讨列表列(list-column)这一数据结构。直到最近我才真正体会到列表列这一概念的价值。列表列隐含在数据框的定义中:数据框是一个由等长向量组成的命名列表。列表也是一种向量,所以使用列表作为数据框的一列一直都是合法的。然而,base R 并没有让创建列表列变得容易,而且 data.frame() 会把列表当作列的列表来处理:

data.frame(x = list(1:3, 3:5)) #> x.1.3 x.3.5 #> 1 1 3 #> 2 2 4 #> 3 3 5

你可以用 I() 阻止 data.frame() 这样做,但结果的打印效果不太好:

data.frame( x = I(list(1:3, 3:5)), y = c("1, 2", "3, 4, 5") ) #> x y