Я хочу случайным образом нарушить порядок букв, из которых состоят слова в предложениях. Я могу перетасовать отдельные слова, например:
a <- "bach"
sample(unlist(str_split(a, "")), nchar(a))
[1] "h" "a" "b" "c"
но я не могу сделать это для предложений, например:
b <- "bach composed fugues and cantatas"
Что я уже пробовал:
разделить на слова:
b1 <- str_split(b, " ")
[[1]]
[1] "bach" "composed" "fugues" "and" "cantatas"
вычислить количество символов в слове:
n <- lapply(b1, function(x) nchar(x))
n
[[1]]
[1] 4 8 6 3 8
разделить слова в b1
на отдельные буквы:
b2 <- str_split(unlist(str_split(b, " ")), "")
b2
[[1]]
[1] "b" "a" "c" "h"
[[2]]
[1] "c" "o" "m" "p" "o" "s" "e" "d"
[[3]]
[1] "f" "u" "g" "u" "e" "s"
[[4]]
[1] "a" "n" "d"
[[5]]
[1] "c" "a" "n" "t" "a" "t" "a" "s"
Перепутайте буквы в каждом слове на основе вышеизложенного:
lapply(b2, function(x) sample(unlist(x), unlist(n), replace = T))
[[1]]
[1] "h" "a" "c" "b"
[[2]]
[1] "o" "p" "o" "s"
[[3]]
[1] "g" "s" "s" "u"
[[4]]
[1] "d" "d" "a" "d"
[[5]]
[1] "c" "n" "s" "a"
Это явно не тот результат. Как я могу случайным образом перепутать последовательность букв в каждом слове в предложении?
stri_rand_shuffle(stri_split_fixed(b, " ")[[1]])
- person Henrik   schedule 02.06.2020