gpt4 book ai didi

r - str_extract_all : return all patterns found in string concatenated as vector

转载 作者:行者123 更新时间:2023-12-03 20:27:49 26 4
gpt4 key购买 nike

我想提取除模式之外的所有内容并将其返回到字符串中。

我试图将 str_extract_all 与 sapply 和 cat 结合在一起

x = c("a_1","a_20","a_40","a_30","a_28")
data <- tibble(age = x)


# extracting just the first pattern is easy
data %>%
mutate(age_new = str_extract(age,"[^a_]"))
# combining str_extract_all and sapply doesnt work
data %>%
mutate(age_new = sapply(str_extract_all(x,"[^a_]"),function(x) cat(x,sep="")))


class(str_extract_all(x,"[^a_]"))
sapply(str_extract_all(x,"[^a_]"),function(x) cat(x,sep=""))

返回 NULL 而不是串联模式

最佳答案

而不是 cat ,我们可以使用 paste .另外,还有 tidyverse , 可以利用 mapstr_c (代替 paste - 来自 stringr )

library(tidyverse)
data %>%
mutate(age_new = map_chr(str_extract_all(x, "[^a_]+"), ~ str_c(.x, collapse="")))

使用`OP的代码
data %>%
mutate(age_new = sapply(str_extract_all(x,"[^a_]"),
function(x) paste(x,collapse="")))

如果目的是获取数字
library(readr)
data %>%
mutate(age_new = parse_number(x))

关于r - str_extract_all : return all patterns found in string concatenated as vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57059625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com