R 从tible列创建列表

R 从tible列创建列表,r,list,dplyr,purrr,readr,R,List,Dplyr,Purrr,Readr,我有一个像这样的tibble: > library(tidyverse) > tbl <- tibble(x = c('a', 'b', 'c'), y = 1:3) > tbl # A tibble: 3 x 2 x y <chr> <int> 1 a 1 2 b 2 3 c 3 提前谢谢您可以将y列转换为列表,并将x列转换为setNames: 您可以将y列转换为列表,并使

我有一个像这样的tibble:

> library(tidyverse)
> tbl <- tibble(x = c('a', 'b', 'c'), y = 1:3)
> tbl
# A tibble: 3 x 2
      x     y
  <chr> <int>
1     a     1
2     b     2
3     c     3
提前谢谢

您可以将y列转换为列表,并将x列转换为
setNames

您可以将y列转换为列表,并使用x列
setNames


使用
tidyr

library(tidyr)
tbl <- tibble(x = c('a', 'b', 'c'), y = 1:3)
as.list(spread(tbl, x, y))

使用
tidyr

library(tidyr)
tbl <- tibble(x = c('a', 'b', 'c'), y = 1:3)
as.list(spread(tbl, x, y))

谢谢,首先回答!谢谢,首先回答@TommasoGuerrini值得注意的是,如果您的
x
不是唯一的,那么我的解决方案会抛出一个错误,而Psidom的答案将很高兴有多个同名的列表元素。因为你没有具体说明,所以你可能更正确和错误,但也许考虑一下你的情况是对的。当然,如果你确定没有复制品也没关系。我没有注意到有更多的复制品,但奇怪的是,我仍然需要Psidom的答案。谢谢你的帮助specifying@TommasoGuerrini值得注意的是,如果您的
x
不是唯一的,那么我的解决方案会抛出一个错误,而Psidom的答案将很高兴有多个同名的列表元素。因为你没有具体说明,所以你可能更正确和错误,但也许考虑一下你的情况是对的。当然,如果你确定没有复制品也没关系。我没有注意到有更多的复制品,但奇怪的是,我仍然需要Psidom的答案。感谢您的详细说明
library(tidyr)
tbl <- tibble(x = c('a', 'b', 'c'), y = 1:3)
as.list(spread(tbl, x, y))
# $a
# [1] 1
# 
# $b
# [1] 2
# 
# $c
# [1] 3