首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能让combn在dplyr::mutate中工作?

我怎样才能让combn在dplyr::mutate中工作?
EN

Stack Overflow用户
提问于 2019-04-15 00:55:18
回答 2查看 172关注 0票数 2

我试图让combn()dplyr::mutate中工作,但我失败了,也不太明白为什么。

这是可行的:

代码语言:javascript
复制
c("a", "b", "c") %>% combn(2, FUN = paste, collapse = ";", simplify = TRUE)
[1] "a;b" "a;c" "b;c"

但是我怎么才能让它工作呢?

代码语言:javascript
复制
tribble(
  ~col, 
  c("a", "b", "c"), 
  c("a", "d", "f")
) %>% 
  mutate(col = combn(str_split(names, ";"), 2, FUN = paste, collapse = ";")) 

我希望矩阵中的每一行都是以下形式的字符向量:

代码语言:javascript
复制
[1] "a;b" "a;c" "b;c"

上面的示例将是第一行。

编辑:我想如果不使用combn()也没问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-15 01:42:33

我们可以使用maplistpaste上循环

代码语言:javascript
复制
library(tidyverse)
out <- tribble(
    ~col, 
     c("a", "b", "c"), 
     c("a", "d", "f")
   ) %>% 
      mutate(col = map(col, ~ combn(.x, 2, FUN = paste, collapse=";"))) 
票数 2
EN

Stack Overflow用户

发布于 2019-04-15 01:20:02

尝试:

代码语言:javascript
复制
  tribble(
      ~col,
      c("a", "b", "c"),
      c("a", "d", "f")
    ) %>%
      rowwise() %>%
      mutate(new = toString(combn(col, 2, FUN = paste, collapse = ";")))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55677783

复制
相关文章

相似问题

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