【问题标题】:Remove end of each number in a vector in R删除R中向量中每个数字的结尾
【发布时间】:2014-12-19 17:57:18
【问题描述】:

我有一个这样的向量:

a <- c(11223344,55667788)

我想为a中每个条目的最后两个数字创建一个新的矢量切割:

[1] 112233 556677 

我是否必须使用正则表达式来实现这一点,还是有一个我不知道的简单索引技巧?

【问题讨论】:

    标签: regex r indexing


    【解决方案1】:

    或者你可以使用sub

     as.numeric(sub('..$','', a))
     #[1] 112233 556677
    

    【讨论】:

      【解决方案2】:

      如果它们是整数:

      > trunc(a / 100)
      [1] 112233 556677
      

      只有当它们是严格肯定的,你才能使用 floor:

      > floor(a / 100)
      [1] 112233 556677
      

      【讨论】:

      • 我认为第二个更好(如果是负数,第一个解决方案不起作用)
      • 好点,切换推荐顺序并警告floor。
      【解决方案3】:

      您可以使用substr(或substring),将字符数减少到结束前的两个

      a <- c(11223344, 55667788)
      substr(a, 1, nchar(a)-2)
      # [1] "112233" "556677"
      

      如有必要,请使用as.numeric。

      【讨论】:

        猜你喜欢
        • 2020-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-18
        • 2017-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多