【发布时间】:2021-12-30 20:04:02
【问题描述】:
我有以下数据:
inputs <- c("Master", "Bachelor", "School")
我想要每个字母的前 1-2 个字母的所有可能排列 词。
first_letter <- sapply(inputs, substr, start = 1, stop = 1)
"M" "B" "S"
second_letter <- sapply(inputs, substr, start = 1, stop = 2)
"Ma" "Ba" "Sc"
期望的输出:
每个顺序中第一个字母的所有排列,请参见 变量“all_order”(参见“我尝试过的内容”部分)。 同样在这两种变体中,所以要么取第一个值 “first_letter”或第一个值“second_letter”,但不能同时使用。
MBaS, MBS, MBSc, MBaSc MaBaS, MaBS, MaBSc, MaBaSc,
SBM,SBaM,SBaMa,SBaM ScBM,ScBaM,ScBaMa,ScBaM
BSM,BSMa,BScM,BScMa BaSM,BaSMa,BaScM,BaScMa,
.....
(如果解释得好,请告诉我。)
我尝试了什么:
combs <- combn(rep(seq(inputs), 2), 3)
keep <- !colSums(apply(combs, 2, duplicated))
all_order <- combs[, keep]
all_order
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 1 1 1 1 2 2 3 1
[2,] 2 2 3 2 3 1 1 2
[3,] 3 3 2 3 1 3 2 3
【问题讨论】:
-
您尝试的结果如何?它实现了您的目标还是达不到目标?
-
您正在寻找其中的排列,而不是组合,对吗?
-
@norie:all_order 变量只是给了我所有可能的单词顺序。但它不包含我想使用每个单词的前 1 个或 2 个字母的要求。
-
@r2evans:你是对的,排列,我会纠正那个。
标签: r