在OP的代码中,str_trunc
默认情况下使用ellipsis = "..."
。如果我们将其更改为空白(""
),它应该给出与上面相同的输出。的输出lapply
is a list
,所以我们可以将它分配回 data.frame 或换行data.frame
来转换list
to data.frame
library(stringr)
g1[] <- lapply(g1, str_trunc, 5, ellipsis = "")
g1
# gene value
#1 aaaaa 1fdfd
#2 aaaaa 2fdfd
#3 aaaaa fdfdf
#4 a 5ffff
#5 bbbbb 0
或者我们可以使用base R
通过转换data.frame
to matrix
并使用substr
from base R
没有循环
g1[] <- substr(as.matrix(g1), 1, 5)
g1
# gene value
#1 aaaaa 1fdfd
#2 aaaaa 2fdfd
#3 aaaaa fdfdf
#4 a 5ffff
#5 bbbbb 0
或者使用tidyverse
library(dplyr) #1.0.0
library(stringr)
g1 %>%
mutate(across(everything(), str_sub, 1, 5))
# gene value
#1 aaaaa 1fdfd
#2 aaaaa 2fdfd
#3 aaaaa fdfdf
#4 a 5ffff
#5 bbbbb 0
如果我们有一个dplyr
版本<
1.0.0,一个选项是mutate_all
g1 %>%
mutate_all(str_sub, 1, 5)