gpt4 book ai didi

regex - 如何拆分基于正则表达式条件的 R data.frame 列

转载 作者:行者123 更新时间:2023-12-02 05:49:32 26 4
gpt4 key购买 nike

我有一个 data.frame,我想根据正则表达式将其中一列拆分为两列。更具体地说,字符串在括号中有一个后缀,需要将其提取到自己的列中。

例如我想从这里开始:

dfInit <- data.frame(VAR = paste0(c(1:10),"(",c("A","B"),")"))

到这里:

dfFinal <- data.frame(VAR1 = c(1:10), VAR2 = c("A","B"))

最佳答案

1) gsubfn::read.pattern gsubfn 包中的 read.pattern 可以做到这一点。与正则表达式括号部分的匹配被视为字段:

library(gsubfn)
read.pattern(text = as.character(dfInit$VAR), pattern = "(.*)[(](.*)[)]$")

给予:

   V1 V2
1 1 A
2 2 B
3 3 A
4 4 B
5 5 A
6 6 B
7 7 A
8 8 B
9 9 A
10 10 B

2) sub 另一种方法是使用sub:

data.frame(V1=sub("\\(.*", "", dfInit$VAR), V2=sub(".*\\((.)\\)$", "\\1", dfInit$VAR))

给出相同的结果。

3) read.table 这个解决方案不使用正则表达式:

read.table(text = as.character(dfInit$VAR), sep = "(", comment = ")")

给出相同的结果。

关于regex - 如何拆分基于正则表达式条件的 R data.frame 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26383776/

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