代码之家  ›  专栏  ›  技术社区  ›  Ben

强制gsub保持尾随零

  •  3
  • Ben  · 技术社区  · 8 年前

    我想提取“.”之后的数字来自数据。框[1]并将其存储在第二列中,如下所示:

    1 6.354 354 
    2 6.355 355
    3 6.363 363
    4 6.367 367
    5 6.378 378
    6 6.419 419
    7 6.426 426
    8 6.427 427
    9 6.428 428
    10 6.431 431
    11 6.460 46
    12 6.477 477
    (...)
    

    为此,我使用 gsub(".*\\.", "", data.frame[,1]) 但这忽略了零,如第11行所示。 如何提取“.”后的完整数字/所有数字? 该列为数字。

    1 回复  |  直到 8 年前
        1
  •  2
  •   akrun    8 年前

    如果这是数字,那么我们可能需要将其转换为 character 使用 format sprintf ,然后使用 sub

    sub("^[^.]*[.]", "", format(v1, width = max(nchar(v1))))
    #[1] "354" "355" "460" "400" "012"
    

    数据

    v1 <- c(6.354, 6.355, 6.460, 6.400, 6.012)
    
    推荐文章