簡體   English   中英

如何收集向量中字符的所有組合作為字符向量列表?

[英]How to collect all combinations of characters in vectors as a list of vectors of characters?

假設我有兩個向量:

x <- c("A", "B")
y <- c("C")

然后我想通過以下方式查找並收集xy的所有組合:

DesiredOutput <- list(c('A', 'C'), c('B', 'C'))

我嘗試將expand.gridsplit結合使用,如下所示:

xy.df <- expand.grid(x, y)
xy.list <- split(xy.df, 1:nrow(xy.df))

但是,這不會產生所需的 output,因為例如xy.list[[1]][1]不再是字符。 如果我嘗試簡單地執行as.character(xy.list[[1]][1])那么這將返回一個"1" 那么,我能做些什么呢?

調整 stackoverflow.com/questions/38221588/combinations-by-group-in-r 中的答案,您可以嘗試:

library(dplyr)
library(tidyr)

  
  df1 <- data.frame(x, y) |> 
    pivot_longer(everything()) |> 
    distinct() |> 
    group_by(name)
    
    as.data.frame(t(combn(df1$value, 2)))
#>   V1 V2
#> 1  A  C
#> 2  A  B
#> 3  C  B

創建於 2022-12-10,使用reprex v2.0.2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM