【问题标题】:Cross Join on Itself RStudio交叉加入自身 RStudio
【发布时间】:2021-10-30 19:39:36
【问题描述】:

我有兴趣通过查找除空值之外的所有可能组合来了解如何将 RStudio 中的多列转换为两列。这是示例输入:

Mike Bill Pat Ty 
Bob  Bret Mike null
Dyl  Ty   null null

这是示例输出:

Mike Bill
Mike Pat
Mike Ty
Bill Pat
Bill Ty
Pat Ty
Bob Bret
Bob Mike
Bret Mike
Dyl Ty

任何帮助解决这个问题将不胜感激。谢谢!

【问题讨论】:

  • 你试过什么没用?

标签: r combinations cross-join


【解决方案1】:

combn() 函数以所有可能的方式组合元素,同时保持顺序。
t() 函数转置结果。
你可以用rbind()把这些放在最后。

t(combn(c('Mike', 'Bill', 'Pat', 'Ty'), 2))
     [,1]   [,2]  
[1,] "Mike" "Bill"
[2,] "Mike" "Pat" 
[3,] "Mike" "Ty"  
[4,] "Bill" "Pat" 
[5,] "Bill" "Ty"  
[6,] "Pat"  "Ty" 
t(combn(c('Bob', 'Bret', 'Mike', NULL), 2))
     [,1]   [,2]  
[1,] "Bob"  "Bret"
[2,] "Bob"  "Mike"
[3,] "Bret" "Mike"
t(combn(c('Dyl', 'Ty', NULL, NULL), 2))
     [,1]  [,2]
[1,] "Dyl" "Ty"

【讨论】:

    猜你喜欢
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    相关资源
    最近更新 更多