【问题标题】:perform the possible combinations two by two in a column in R在R中的一列中两个两个执行可能的组合
【发布时间】:2022-08-18 00:37:05
【问题描述】:

我希望你按日期和地点给我所有可能的组合,两人一组。 我有这个 df

df <- tribble(
  ~date, ~place, ~names, 
  \"2022-02-10\", \"a\", \"Luis Smith,Johan Devi,Lia Ivanov,Rui Kim\",
  \"2022-02-11\", \"b\", \"Luis Smith,Lia Ivanov,Rui Kim\",
  \"2022-02-12\", \"c\", \"Luis Smith,Johan Devi,Rui Kim\", 
)

我找到了这段代码: a<-combn(variables, 2) ,问题是我的每个字符都必须分开,并且在我的列中,虽然它们用类似分隔,但它们显示为一个:

我期待这样的结果:

df<- tribble(
  ~date,    ~place, ~names, ~x1,    ~x2,    ~x3,    ~x4,    ~x5,    ~x6,
  \"2022-02-10\", \"a\", \"Luis Smith,Johan Devi,Lia Ivanov,Rui Kim\",    \"Luis Smith,Johan Devi\",    \"Luis Smith, Lia Ivanov\",   \"Luis Smith, Rui Kim\",  \"Johan Devi,Lia Ivanov\",    \"Johan Devi,Rui Kim\",   \"Lia Ivanov, Rui Kim\",
  \"2022-02-11\", \"b\", \"Luis Smith,Lia Ivanov,Rui Kim\",   \"Luis Smith, Lia Ivanov\",   \"Luis Smith, Rui Kim\",  \"Lia Ivanov, Rui Kim\"   ,   NA,NA,NA,
  \"2022-02-12\", \"c\", \"Luis Smith,Johan Devi,Rui Kim\",   \"Luis Smith,Johan Devi\",    \"Luis Smith, Rui Kim\",  \"Johan Devi, Rui Kim\"   ,   NA,NA,NA,   
)

    标签: r


    【解决方案1】:

    这是一种方法 - 将, 处的“名称”列与strsplit 分开,将listmap 循环,应用combnpaste 元素并使用unnest_wider 创建新的列

    library(dplyr)
    library(tidyr)
    library(purrr)
    df %>% 
      mutate(x = map(strsplit(names, ","),
        ~ combn(.x, 2, FUN = paste, collapse=", "))) %>%
      unnest_wider(x, names_sep = "")
    

    -输出

    # A tibble: 3 × 9
      date       place names                                    x1                     x2                     x3                  x4            x5    x6   
      <chr>      <chr> <chr>                                    <chr>                  <chr>                  <chr>               <chr>         <chr> <chr>
    1 2022-02-10 a     Luis Smith,Johan Devi,Lia Ivanov,Rui Kim Luis Smith, Johan Devi Luis Smith, Lia Ivanov Luis Smith, Rui Kim Johan Devi, … Joha… Lia …
    2 2022-02-11 b     Luis Smith,Lia Ivanov,Rui Kim            Luis Smith, Lia Ivanov Luis Smith, Rui Kim    Lia Ivanov, Rui Kim <NA>          <NA>  <NA> 
    3 2022-02-12 c     Luis Smith,Johan Devi,Rui Kim            Luis Smith, Johan Devi Luis Smith, Rui Kim    Johan Devi, Rui Kim <NA>          <NA>  <NA> 
    

    【讨论】:

      猜你喜欢
      • 2015-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      相关资源
      最近更新 更多