Я хотел бы извлечь все возможные подпоследовательности из вектора длины n. Например, если у меня есть c(a,b,c), я хотел бы найти c(a,b,c,ab,ac,bc,abc,). Я могу решить это вручную с помощью вектора короткой длины, но проблема становится неразрешимой с большей длиной. Любая идея, как я могу сделать это, используя некоторую итерацию?
Извлечь все возможные подпоследовательности из вектора в R
Ответы (1)
Использование combn
.
x <- c("a","b","c")
unlist(sapply(1:length(x), function(i) combn(x, i, simplify=F)), recursive=F)
# [[1]]
# [1] "a"
#
# [[2]]
# [1] "b"
#
# [[3]]
# [1] "c"
#
# [[4]]
# [1] "a" "b"
#
# [[5]]
# [1] "a" "c"
#
# [[6]]
# [1] "b" "c"
#
# [[7]]
# [1] "a" "b" "c"
Or
unlist(sapply(1:length(x), function(i) combn(x, i, function(j) Reduce(paste0, j))))
# [1] "a" "b" "c" "ab" "ac" "bc" "abc"
person
jay.sf
schedule
20.06.2020