如何将数据帧内的向量折叠成字符串

问题描述 投票:0回答:1

我正在从

str_extract_all
的数据框中创建一个新变量,这会产生一个列,其中包含一些向量。类似的结果来自于对
iris
的操作:

t = iris %>% mutate(test = str_extract_all(Species, 's\\w')) %>% arrange(Sepal.Width)
head(t)
Sepal.Length Sepal.Width Petal.Length Petal.Width    Species   test
          5.0         2.0          3.5         1.0 versicolor     si
          6.0         2.2          4.0         1.0 versicolor     si
          6.2         2.2          4.5         1.5 versicolor     si
          6.0         2.2          5.0         1.5  virginica  character(0) 
          4.5         2.3          1.3         0.3     setosa  c("se", "sa")
          5.5         2.3          4.0         1.3 versicolor     si

我想将“setosa”结果折叠为“se, sa”或类似的内容,并将“virginica”结果设置为 NA。

str_flatten()
paste(, collapse='')
将整个列折叠成单个字符串(太长,无法在此处显示)。

如何仅折叠所需的向量,或直接从

str_extract()
获取结果?

r stringr
1个回答
0
投票

最少地更改代码:

iris |>
  dplyr::mutate(test = lapply(stringr::str_extract_all(iris$Species, 's\\w'), toString)) |> 
  dplyr::arrange(Sepal.Width)
© www.soinside.com 2019 - 2024. All rights reserved.