r语言 - 在自身RStudio上交叉连接



我有兴趣了解如何通过找到排除空值的每种可能组合将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

任何帮助解决这个问题将是非常感激的。谢谢!

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"

相关内容

  • 没有找到相关文章

最新更新