我正在从
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()
获取结果?
最少地更改代码:
iris |>
dplyr::mutate(test = lapply(stringr::str_extract_all(iris$Species, 's\\w'), toString)) |>
dplyr::arrange(Sepal.Width)