我有一个向量的话:
str <- c("The", "Cat", "Jumped")
我想找到所有的单词组合,并在任何多于一个的组合之间插入一个“+”,类似于:
paste(str, collapse = " + ")
# [1] "The + Cat + Jumped"
我想要的输出是:
want <- c("The", "Cat", "Jumped",
"The + Cat", "The + Jumped",
"Cat + Jumped",
"The + Cat + Jumped")
还请注意,我只需要组合,所以顺序并不重要,"The + Cat"
或"Cat + The"
都可以,但我不需要两者。
我尝试了一些方法与combn
(here),outer
(here),expand.grid
(here),并按照@Akrun的建议对类似的问题r - Get different combinations of words,但无济于事。
5条答案
按热度按时间b4qexyjb1#
fdbelqdn2#
您可以对所有可能的大小使用
combn
,然后自己折叠结果13z8s7eq3#
你可以像下面这样用
intToBits
玩一个把戏这给
q43xntqr4#
下面是@MrFlick代码的tidyverse变体:
bd1hkmkf5#
使用
rje
包中的powerSet
函数:注:第一个元素对应于空集。有关更多信息,请参阅Power set的wiki。