r - 将向量的每个元素与另一个向量的每个元素连接

标签 r string

list1 = c("X", "Y")
list2 = c("1", "2", "3")

我想要的是

c("X1", "X2", "X3", "Y1", "Y2", "Y3")

我该怎么做?有可能有一个包可以做到这一点吗?我尝试了 paste() 但它交替混合了条目(“X1、“Y2”、“X3”)。

最佳答案

我们可以在向量上使用expand.gridouter来获取所有组合,然后粘贴 将其放在一起。

使用expand.grid,输出是一个有两列的data.frame,我们可以使用do.call(paste0)来粘贴输出数据集的每一行。

 v1 <- do.call(paste0,expand.grid(list1, list2))
 v1[order(v1)]
 #[1] "X1" "X2" "X3" "Y1" "Y2" "Y3"

或者如上所述,outer 是另一个选项,对于此操作来说应该非常快。输出将是一个矩阵,可以使用as.vectorc将其转换回向量 .

 c(t(outer(list1, list2, FUN=paste0)))
 #[1] "X1" "X2" "X3" "Y1" "Y2" "Y3"
<小时/>

此外,expand.grid 应该与 list 一起使用

 list1 <- as.list(list1)
 list2 <- as.list(list2)
 do.call(paste0, expand.grid(list1, list2))
 #[1] "X1" "Y1" "X2" "Y2" "X3" "Y3"

关于r - 将向量的每个元素与另一个向量的每个元素连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31676870/

相关文章:

r - 访问 R 中具有特殊字符的主题的帮助页面

c++ - 通过 == 比较 CString 和 TCHAR?

c# - 随机字符串生成 - 一个接一个生成的两个字符串给出相同的结果

r - 是否可以在 R 中启动多个 EC2 实例?

r - 将 react 值传递给函数并访问 react 属性

r - R 2.15 中的覆盖方法

java - for 循环中的字符串文字与 for 循环中的字符串生成器

c - 从未使用过 strlen 时 strlen 的段错误?

c++ - 如何将C++字符串放入char数组

r - 数据转换: spread categorical data frame to counts R