首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >取消组合变量(combn)作为向量的嵌套

取消组合变量(combn)作为向量的嵌套
EN

Stack Overflow用户
提问于 2021-01-02 05:23:29
回答 2查看 54关注 0票数 2

使用下面的代码,我设法获得了一个很好的combination

代码语言:javascript
复制
tibble(
    x = list(c(1, 2, 3), c(4,5,6))
  ) %>% 
  mutate(
      combination = 
        x %>% 
        map(
            .f = combn
          , 2
          ) %>% 
        map(.f = t)
    ) %>% 
  unnest(combination)

# A tibble: 6 x 2
  x         combination[,1]  [,2]
  <list>              <dbl> <dbl>
1 <dbl [3]>               1     2
2 <dbl [3]>               1     3
3 <dbl [3]>               2     3
4 <dbl [3]>               4     5
5 <dbl [3]>               4     6
6 <dbl [3]>               5     6

然而,当使用View()函数观察时,我得到:

如何继续将combination显示为向量?即:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-02 05:29:08

我们可以在combn中指定simplify = FALSE来返回list,而不是强制matrix

代码语言:javascript
复制
library(purrr)
library(dplyr)
library(tidyr)
tbl1 <- tibble(
   x = list(c(1, 2, 3), c(4,5,6))
  ) %>% 
 mutate(
  combination = 
    x %>% 
    map(
        .f = combn
      , 2, simplify = FALSE
      )) 

现在,执行unnest

代码语言:javascript
复制
out <- tbl1 %>%
   unnest(combination)

out
# A tibble: 6 x 2
#  x         combination
#  <list>    <list>     
#1 <dbl [3]> <dbl [2]>  
#2 <dbl [3]> <dbl [2]>  
#3 <dbl [3]> <dbl [2]>  
#4 <dbl [3]> <dbl [2]>  
#5 <dbl [3]> <dbl [2]>  
#6 <dbl [3]> <dbl [2]>  

检查View

票数 3
EN

Stack Overflow用户

发布于 2021-01-02 06:29:07

下面是一个可能有帮助的data.table选项

代码语言:javascript
复制
library(data.table)
library(tidyr)
unnest(setDT(df)[, combination := lapply(x, function(v) combn(v, 2, simplify = FALSE))], combination)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65533826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档