【问题标题】:R. Separate a string into 2 columns at first numberR. 在第一个数字处将字符串分成 2 列
【发布时间】:2018-04-08 15:43:28
【问题描述】:

我有一列包含大量“Male25”形式的数据,表示性别和年龄。我只想将列分为两列,一列与性别,另一列与年龄。在 R 中做到这一点的最佳方法是什么?

【问题讨论】:

    标签: r


    【解决方案1】:

    我们可以使用separate

    library(tidyverse)
    as_tibble("Male25" ) %>%
           separate(value, into = c("sex", "age"), "(?<=[a-z])(?=[0-9])", convert = TRUE)
    # A tibble: 1 x 2
    #  sex     age
    #* <chr> <int>
    #1 Male     25
    

    【讨论】:

    • strcapture("(\\w+)(\\d+)","male25",data.frame(name=character(),age=numeric()))
    【解决方案2】:

    这两种方法都可以尝试

    d <- data.frame(a=c("male25","female24","male36","female20"))
    
    cbind(a1=gsub("\\d","",d$a),a2=gsub("\\D","",d$a))
    
    c <- data.frame(a1=gsub("\\d","",d$a),a2=as.numeric(gsub("\\D","",d$a)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2022-09-29
      • 2019-10-19
      相关资源
      最近更新 更多