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

df <- enframe(x) df #> # 一个 tibble:3 × 2 #> name value #> #> 1 a <int [5]> #> 2 b <int [2]> #> 3 c <int [2]>

这种结构的优点在于它可以以一种直接的方式进行泛化——如果你有一个字符向量形式的元数据,名字会很有用,但如果你有其他类型的数据或多个向量,它就帮不上忙了。

现在如果你想并行地迭代名字和值,可以使用 map2():

df %>% mutate( smry = map2_chr( name, value, ~ stringr::str_c(.x, ": ", .y[1]) ) ) #> # 一个 tibble:3 × 3 #> name value smry #> #> 1 a <int [5]> a: 1 #> 2 b <int [2]> b: 3 #> 3 c <int [2]> c: 5

练习

    1. 列出你能想到的所有接受原子向量并返回列表的函数。
    1. 头脑风暴一下像 quantile() 那样返回多个值的有用的汇总函数。
    1. 下面的数据框缺少了什么?quantile() 是如何返回那个缺失部分的?为什么在这里它没有帮助?

mtcars %>% group_by(cyl) %>% summarize(q = list(quantile(mpg))) %>% unnest() #> # 一个 tibble:15 × 2 #> cyl q #>