从 Tibble 列创建列表
Create a list from Tibble Columns
我有这样的小毛病:
> 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
我想创建一个列表,其中列表元素的名称来自 x(我有所有不同的条目),值来自 y。
我想要这个列表:
list(a = 1, b = 2, c = 3)
$a
[1] 1
$b
[1] 2
$c
[1] 3
提前致谢
您可以将 y 列转换为列表,并且 setNames
与列 x:
setNames(as.list(tbl$y), tbl$x)
#$a
#[1] 1
#$b
#[1] 2
#$c
#[1] 3
使用tidyr
library(tidyr)
tbl <- tibble(x = c('a', 'b', 'c'), y = 1:3)
as.list(spread(tbl, x, y))
spread
采用长格式数据并使其变宽,然后将其转换为列表以提供所需的输出。
# $a
# [1] 1
#
# $b
# [1] 2
#
# $c
# [1] 3
我有这样的小毛病:
> 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
我想创建一个列表,其中列表元素的名称来自 x(我有所有不同的条目),值来自 y。 我想要这个列表:
list(a = 1, b = 2, c = 3)
$a
[1] 1
$b
[1] 2
$c
[1] 3
提前致谢
您可以将 y 列转换为列表,并且 setNames
与列 x:
setNames(as.list(tbl$y), tbl$x)
#$a
#[1] 1
#$b
#[1] 2
#$c
#[1] 3
使用tidyr
library(tidyr)
tbl <- tibble(x = c('a', 'b', 'c'), y = 1:3)
as.list(spread(tbl, x, y))
spread
采用长格式数据并使其变宽,然后将其转换为列表以提供所需的输出。
# $a
# [1] 1
#
# $b
# [1] 2
#
# $c
# [1] 3