假设我有一个数据框:
df <- tibble(x=c(1,2,3),
y=c(4,5,6),
z=c(7,8,9))
Run Code Online (Sandbox Code Playgroud)
# A tibble: 3 x 3
x y z
<dbl> <dbl> <dbl>
1 1 4 7
2 2 5 8
3 3 6 9
Run Code Online (Sandbox Code Playgroud)
如何将数据框转换为列表列表,其中每个列表都对有关每一行的信息进行编码,如下所示:
list(list(x=1, y=4, z=7),
list(x=2, y=5, z=8),
list(x=3, y=6, z=9))
Run Code Online (Sandbox Code Playgroud)
注意:我在下面的回答中对迄今为止介绍的所有方法进行了基准测试。
我们可以用 transpose
purrr::transpose(df)
Run Code Online (Sandbox Code Playgroud)
-输出
[[1]]
[[1]]$x
[1] 1
[[1]]$y
[1] 4
[[1]]$z
[1] 7
[[2]]
[[2]]$x
[1] 2
[[2]]$y
[1] 5
[[2]]$z
[1] 8
[[3]]
[[3]]$x
[1] 3
[[3]]$y
[1] 6
[[3]]$z
[1] 9
Run Code Online (Sandbox Code Playgroud)