如何编写一个函数将字符向量转换为其元素唯一对的字符向量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何编写一个函数将字符向量转换为其元素唯一对的字符向量?相关的知识,希望对你有一定的参考价值。

输入的内容是:

c("a", "b", "c")
[1] "a" "b" "c"

我想要一个返回的函数:

[1] "a;b" "a;c" "b;c"

我需要这个功能完全不用它的输入。我已经尝试过purrr::map()purrr::reduce()的一些东西,但我还没有设法得到任何有用的东西。

答案

我们可以使用来自基数R的combnFUN参数作为paste

combn(x, 2, FUN = paste, collapse = ";")
#[1] "a;b" "a;c" "b;c"

数据

x <- c("a", "b", "c")
另一答案

不是确切的结果,但可能有用:

test<-c("a", "b", "c")
lapply(test,function(x) paste0(x,";",setdiff(test,x)))

结果:

[[1]]
[1] "a;b" "a;c"

[[2]]
[1] "b;a" "b;c"

[[3]]
[1] "c;a" "c;b"

以上是关于如何编写一个函数将字符向量转换为其元素唯一对的字符向量?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据对的第二个元素对对的向量进行排序?

将整数字符串转换为整数的2D向量

如何将字符串颜色转换为其十六进制代码或 RGB 值?

如何按第一个字符串对字符串对的向量进行分组?

如何将字符从 int 转换为“出现”在控制台中?

如何在函数内使用 R 字符向量元素作为字符串和变量?