一、列表列
数据框是由长度相同的向量组成的命名列表。一个列表就是一个向量,因此将列表作为数据框的一列是完全合理的。
在创建时使用tibble会更容易让人理解:
> tibble(x=list(1:3,3:5),y=c("1,2","3,4,5"))
# A tibble: 2 x 2
x y
<list> <chr>
1 <int [3]> 1,2
2 <int [3]> 3,4,5
使用tribble则更加容易些,它可以自动识别想要的列表。
> tribble(
+ ~x,~y,
+ 1:3,"1,2",
+ 3:5,"3,4,5"
+ )
# A tibble: 2 x 2
x y
<list> <chr>
1 <int [3]> 1,2
2 <int [3]> 3,4,5
列表列最大的用处是作为一种中间数据结构。直接处理列表列是很困难的,因为大多数R只能处理原子向量和数据框。但列表列可以将相关项目统一保存在一个数据框中。
使用列表列需要以下三个步骤:
1.创建列表列。
2.通过map,map2,pmap函数转换现有列表列,创建一个中间列表列。例如,我们可以将列表列转换成一个存放模型的列表列。
3.将列表列简化还原成数据框或原子向量。
二、创建列表列
1.使用嵌套
使用tidyr::nest函数将分组数据框转化为嵌套数据框。
在使用时,