
146
|
第
5
章
替代的方法是,我们必须使用 unlist 将列表转换为向量,然后计算向量的平均值:
mean(unlist(iq.scores))
#> [1] 100
下面是另一个例子。我们可以用函数 cat 处理纯量和向量,但我们不能用它处理一个
列表:
cat(iq.scores, "\n")
#> Error in cat(iq.scores, "\n"): argument 1 (type 'list') cannot be
#> handled by 'cat'
一种解决方案是在打印前将列表展平为向量:
cat("IQ Scores:", unlist(iq.scores), "\n")
#> IQ Scores: 100 120 103 80 99
5.11.4 另请参阅
诸如此类的转换将在 5.29 节中有更全面的讨论。
5.12 从列表中移除空值元素
5.12.1 问题
列表包含 NULL 值。需要移除它们。
5.12.2 解决方案
purrr 包中的 compact 函数将删除 NULL 元素。
5.12.3 讨论
考虑到我们通过设置元素值为 NULL 来移除它们(参见 5.10 节),好奇的读者可能想知
道列表怎么会包含 NULL 元素。答案是我们可以
创建
一个包含 NULL 元素的列表:
library(purrr) # or library(tidyverse)
lst <- list("Moe", NULL, "Curly")
lst
#> [[1]]
#> [1] "Moe"
#>
#> [[2]] ...