Yur*_*nko 2 r list tidyverse rlang
我有一个列表列表,每个列表的格式如下:
list( name = 'foo',
type = 'bar',
attributes= list(
list(name='color', value='blue' ),
list(name='batch', value=123),
list(name='is_available', value='true') )
)
Run Code Online (Sandbox Code Playgroud)
即具有属性的名称和值对。我如何将其转换为这种格式
list( name = 'foo',
type = 'bar',
attributes= list(
color='blue' ,
batch=123,
is_available=TRUE )
)
Run Code Online (Sandbox Code Playgroud)
最好以某种tidyverse方式。
这是一种单行基本 R 方式。与预期输出的唯一区别在于属性is_available,请参见末尾。
lst <- list( name = 'foo',
type = 'bar',
attributes= list(
list(name='color', value='blue' ),
list(name='batch', value=123),
list(name='is_available', value = 'true') )
)
out <- list( name = 'foo',
type = 'bar',
attributes= list(
color='blue' ,
batch=123,
is_available = TRUE )
)
lst$attributes <- sapply(lst$attributes, \(x) setNames(x[2], x[1]))
lst$attributes$is_available
#> [1] "true"
out$attributes$is_available
#> [1] TRUE
Run Code Online (Sandbox Code Playgroud)
创建于 2023-05-27,使用reprex v2.0.2