gpt4 book ai didi

r - 从 R 中的数据框中拆分逗号分隔模式

转载 作者:行者123 更新时间:2023-12-04 11:50:59 25 4
gpt4 key购买 nike

我有一个这样的数据集:

Old <- data.frame(
X1= c(
"AD=17795,54;ARL=139;DEA=20;DER=20;DP=1785",
"DP=4784;AD=4753,23;ARL=123;DEA=5;DER=5",
"ARL=149;AD=30,9;DEA=25;DER=25;DP=3077",
"AD=244,49;ARL=144;DEA=7;DER=7;DP=245"
))


X1
AD=17795,54;ARL=139;DEA=20;DER=20;DP=1785
DP=4784;AD=4753,23;ARL=123;DEA=5;DER=5
ARL=149;AD=30,9;DEA=25;DER=25;DP=3077
AD=244,49;ARL=144;DEA=7;DER=7;DP=245
我想提取“;” AD=xxx,xx 的分隔值而不是添加到新列:
期望的输出是:
X1                                              X2
AD=17795,54;ARL=139;DEA=20;DER=20;DP=1785 17795,54
DP=4784;AD=4753,23;ARL=123;DEA=5;DER=5 4753,23
ARL=149;AD=30,9;DEA=25;DER=25;DP=3077 30,9
AD=244,49;ARL=144;DEA=7;DER=7;DP=245 244,49
我试过了:
Old$X2<-mapply(
function(x, i) x[i],
strsplit(X1, ";"),
lapply(strsplit(X1, ";"), function(x) which(x == "AD="))
)

最佳答案

我认为这也可以帮助你:

  • 我们首先捕获AD=字符,然后使用 \\K 重置报告匹配的起点以某种方式告诉正则表达式引擎放弃 AD=并从那时起再次开始匹配模式
  • Old$X2 <- regmatches(Old$X1, gregexpr("(AD=)\\K[0-9,.]+(?=;)", Old$X1, perl = TRUE))
    Old

    X1 X2
    1 AD=17795,54;ARL=139;DEA=20;DER=20;DP=1785 17795,54
    2 DP=4784;AD=4753,23;ARL=123;DEA=5;DER=5 4753,23
    3 ARL=149;AD=30,9;DEA=25;DER=25;DP=3077 30,9
    4 AD=244,49;ARL=144;DEA=7;DER=7;DP=245 244,49

    关于r - 从 R 中的数据框中拆分逗号分隔模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69037236/

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