【问题标题】:Given a named list of character vectors, output a new list where the unique elements of all character vectors reverse place with names of origin list给定一个字符向量的命名列表,输出一个新列表,其中所有字符向量的唯一元素与原始列表的名称相反
【发布时间】:2021-08-11 20:12:52
【问题描述】:

这是一个简化的示例。我的真实数据集非常大,所以答案应该是计算成本低的。

start.list <- list(cb_1 = c("VR_1", "VR_2", "VR_3"), cb_2 = c("VR_2", "VR_3", "VR_4"), 
cb_3 = c("VR_3", "VR_4", "VR_5"))

> start.list  
$cb_1  
[1] "VR_1" "VR_2" "VR_3"

$cb_2  
[1] "VR_2" "VR_3" "VR_4"

$cb_3  
[1] "VR_3" "VR_4" "VR_5"

想要的输出列表:

> output.list  
$VR_1  
[1] "cb_1"

$VR_2  
[1] "cb_1" "cb_2"

$VR_3  
[1] "cb_1" "cb_2" "cb_3"

$VR_4  
[1] "cb_2" "cb_3"

$VR_5  
[1] "cb_3"

【问题讨论】:

标签: r list vector


【解决方案1】:

使用enframeunnest -

tibble::enframe(start.list) %>%
  tidyr::unnest(value) %>%
  {split(.$name, .$value)}

#$VR_1
#[1] "cb_1"

#$VR_2
#[1] "cb_1" "cb_2"

#$VR_3
#[1] "cb_1" "cb_2" "cb_3"

#$VR_4
#[1] "cb_2" "cb_3"

#$VR_5
#[1] "cb_3"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多