gpt4 book ai didi

regex - R 使用 tidyr::separate 在最后一个空白字符处拆分字符串

转载 作者:行者123 更新时间:2023-12-04 05:23:26 24 4
gpt4 key购买 nike

假设我有一个这样的数据框:

df<-data.frame(a=c("AA","BB"),b=c("short string","this is the longer string"))

我想根据最后出现的空格使用正则表达式拆分每个字符串。
我试过:
library(dplyr)
library(tidyr)
df%>%
separate(b,c("partA","partB"),sep=" [^ ]*$")

但这省略了输出中字符串的第二部分。我想要的输出如下所示:
   a              partA  partB
1 AA short string
2 BB this is the longer string

我该怎么做。如果我可以为此使用 tidyr 和 dplyr 会很好。

最佳答案

我们可以使用 extract来自 tidyr通过使用捕获组 ( (...) )。我们匹配零个或多个字符( .* )并将其放在括号内( (.*) ),然后是零个或多个空格( \\s+ ),然后是下一个仅包含非空格字符的捕获组( [^ ] ) 直到字符串的结尾 ( $ )。

library(tidyr)
extract(df, b, into = c('partA', 'partB'), '(.*)\\s+([^ ]+)$')
# a partA partB
#1 AA short string
#2 BB this is the longer string

关于regex - R 使用 tidyr::separate 在最后一个空白字符处拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32119963/

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