【问题标题】:Removing some but not all digits from variable names in R从R中的变量名中删除一些但不是全部数字
【发布时间】:2017-10-02 22:21:22
【问题描述】:

我想从像 df1 这样的数据框的变量名称中删除数字,以生成像 df2 这样的数据框。我希望仅在 至少有两个连续的单词字符 数字之前删除数字,但数字的 exception 4 我想一直保留。非常感谢。

当前df:

df1 <- data.frame("ACO2_E1_E2"=c(1,1,1),"BCKDHB6_E1"=c(1,1,1) ,
                  "CDDD4_E3"=c(1,1,1),"HDFE1"=c(1,1,1))

所需的df:

df2 <- data.frame("ACO_E1_E2"=c(1,1,1),"BCKDHB_E1"=c(1,1,1) ,
                  "CDDD4_E3"=c(1,1,1),"HDFE"=c(1,1,1))

我的尝试:(我设法删除/保留了正确的数字,但只是不加选择,并且无法弄清楚如何在数字前引入至少两个连续单词字符的其他标准。)

gsub('[0,1,2,3,5,6,7,8,9]+', '', names(df1))

【问题讨论】:

    标签: r regex


    【解决方案1】:

    匹配两个单词字符后跟一个非 4 位数字并将其替换为单词字符:

    x <- gsub("([A-Z]{2})[0-35-9]", "\\1", names(df1))
    x
    ## [1] "ACO_E1_E2" "BCKDHB_E1" "CDDD4_E3"  "HDFE"   
    
    identical(x, names(df2))
    ## [1] TRUE
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      • 2019-08-22
      • 2021-10-06
      • 2015-09-26
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      相关资源
      最近更新 更多