我有一个字符串ch
,我希望得到一个特定的输出out
。请参阅以下示例。
ch <- "A B"
out <- "A B AB"
ch <- "A B C"
out <- "A B C AB BC AC ABC"
ch <- "A B C D"
out <- "A B C D AB BC CD AC AD BD ABC ABD ACD BCD ABCD"
基本上我希望得到字符串中所有单词的所有可能前进组合,如上所述。
如何在R中以最简单的方式实现这一目标?
编辑:
我试过以下。但它似乎提供了所有可能的组合,在这种情况下,很难过滤掉我需要的案例。
e <- c("A", "B", "C")
> r <- expand.grid(e, e, e)
> r
Var1 Var2 Var3
1 A A A
2 B A A
3 C A A
4 A B A
5 B B A
6 C B A
7 A C A
8 B C A
9 C C A
10 A A B
11 B A B
12 C A B
13 A B B
14 B B B
15 C B B
16 A C B
17 B C B
18 C C B
19 A A C
20 B A C
21 C A C
22 A B C
23 B B C
24 C B C
25 A C C
26 B C C
27 C C C
答案 0 :(得分:4)
一个选项是split
字符串按空格(strsplit(str1, ' '))
,按照&#39; v1&#39;的长度顺序循环,得到&#{1}} 39; v1&#39;对于序列,combn
输出列中的元素(paste
),apply(..., 2, ...)
和unlist
。我们可以创建一个函数(&#39; f1&#39;)执行这些操作并将其用于多个字符串。
paste