变异以将文本字段转换为包装字符串

mutate to transforma field of text into wrapped strings

adf <- data.frame(
      s = c('jfgjksdfg ikbhsjfkv jhdjkfvb kjhgjkhjbhk jhfjdf khkhk',
            'kjhgf kjhg hgdhjksmn',
            'cats dogs'),
      n = 1:3)

adf
                                                      s n
1 jfgjksdfg ikbhsjfkv jhdjkfvb kjhgjkhjbhk jhfjdf khkhk 1
2                                  kjhgf kjhg hgdhjksmn 2
3                                             cats dogs 3

我想将 s 中的 3 行文本中的每一行都换成 10 宽。尝试过:

library(stringr)

    adf %>% mutate(blah = cat(str_wrap(s, width = 10), "\n")) %>% glimpse
    jfgjksdfg
    ikbhsjfkv
    jhdjkfvb
    kjhgjkhjbhk
    jhfjdf
    khkhk kjhgf kjhg
    hgdhjksmn cats dogs 
    Rows: 3
    Columns: 2
    $ s <chr> "jfgjksdfg ikbhsjfkv jhdjkfvb kjhgjkhjbhk jhfjdf khkhk", "kjhgf kjhg hgdhjksmn", "cats dogs"
    $ n <int> 1, 2, 3

不确定这是什么,但我期待一个新字段 blah,它只是将 s 的文本版本包装在相同的 3 行中。我该怎么做?

[编辑] 显示预期结果的屏幕截图。我不得不猜测 width=10 在电子表格上的样子

我们可以将 width 更改为更大的值,因为 width = 10,将在 's'

的第一行中围绕第一个单词本身创建环绕
substr(adf$s, 1, 10)
[1] "jfgjksdfg " "kjhgf kjhg" "cats dogs" 

根据?str_wrap

width - positive integer giving target line width in characters. A width less than or equal to 1 will put each word on its own line.

此外,cat用于打印输出,没有return值。我们可以删除 cat 包装并直接在 DT::datatable

中使用下面的代码
library(dplyr)
library(tidyr)
adf %>%
     mutate(s = str_wrap(s, width = 20))