R:生成组之间的字符串组合

时间:2014-06-11 17:44:19

标签: r

在bash中,可以很容易地在组之间生成字符串组合,例如:

> echo {'A','B'}_{'1','2'}_S_R
A_1_S_R A_2_S_R B_1_S_R B_2_S_R

有人知道如何在R中生成这种字符串组合吗?

我尝试了以下但是它似乎只重复了第一个元素,而不是秒。

paste(rep(c("A", "B"), 2), c("1", "2"), "S", "R", sep = "_")
[1] "A_1_S_R" "B_2_S_R" "A_1_S_R" "B_2_S_R"
paste(rep(c("A", "B"), 2), rep(c("1", "2"), 2), "S", "R", sep = "_")
[1] "A_1_S_R" "B_2_S_R" "A_1_S_R" "B_2_S_R"

谢谢!

2 个答案:

答案 0 :(得分:1)

当您尝试组合组合时,

outer通常是正确的功能。

paste(outer(LETTERS[1:2], 1:2, paste, sep="_"), "_S_R", sep="")

[1] "A_1_S_R" "B_1_S_R" "A_2_S_R" "B_2_S_R"

答案 1 :(得分:1)

好的,我已经找到了一种方法,但它看起来并不太明显/有效。

如果您找到更好的方法,请添加您的答案。

> df<-expand.grid(c("A", "B"), c("1", "2"), "S", "R")
> paste(df[,1],df[,2], df[,3],df[,4],sep="_")
[1] "A_1_S_R" "B_1_S_R" "A_2_S_R" "B_2_S_R"