【问题标题】:How to extract a first 3 numbers within a variable?如何提取变量中的前 3 个数字?
【发布时间】:2023-01-27 02:22:20
【问题描述】:

我的数字变量如下所示:

u$a <- c(1234, 1432, 1456, 13467)

如何创建一个新变量 a1,它是变量 a 的前三个字符,这样它看起来像这样:

u$a1 <- c(123, 143, 145, 134)

谢谢你。

【问题讨论】:

  • 使用整数除法a%/%10

标签: r dplyr


【解决方案1】:

您可以先将其转换为 character,然后使用 substr 获取第一个到第三个字符,然后将其转换回 numeric,如下所示:

u$a1 <- as.numeric(substr(as.character(u$a), 1, 3))
u
#>       a  a1
#> 1  1234 123
#> 2  1432 143
#> 3  1456 145
#> 4 13467 134

创建于 2023-01-26 reprex v2.0.2


使用的数据:

u <- data.frame(a = c(1234, 1432, 1456, 13467))

【讨论】:

    【解决方案2】:

    使用整数除法。即除以 10 而忽略余数

    u$a1 <- u$a %/% 10
    
    u
    #>       a  a1
    #> 1  1234 123
    #> 2  1432 143
    #> 3  1456 145
    #> 4 13467 134
    

    【讨论】:

      【解决方案3】:

      使用sub

      u$a1 <- as.numeric(sub("^(...).*", "\1", u$a))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-19
        • 2021-09-19
        • 1970-01-01
        • 2011-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多