【问题标题】:how to put dot between number in r如何在r中的数字之间放置点
【发布时间】:2021-08-27 10:01:18
【问题描述】:

我有一个矩阵:

数据:

  x           y
10210        542546
2013021      254
1002         200

想在第二位加点:

数据

  x           y
10.210        54.2546
20.13021      25.4
10.02         2.00

解决办法是什么?

【问题讨论】:

  • 你对 y[3] 的逻辑是什么?为什么 2 变成 0.02?
  • 因为当我们将两位数加到数据的第一位时,2变成了.02
  • 仍然没有得到它。 2 >> add leading zero's >> 002 >> dot after second digit >> 00.2 >> 0.2 ?为什么是 0.02?
  • ok 请用 200 替换 2
  • 那不应该是20.0吗?

标签: r paste substr


【解决方案1】:

不确定这是否有意义: 给定一个矩阵

mat <- structure(c(10210, 2013021, 1002, 542546, 254, 2), .Dim = 3:2)

我们可以使用

library(stringr)
library(magrittr) # just for the pipe %>%; R 4.1.0 you can use |> instead

mat %>%
  as.character() %>%
  str_pad(3, side="left", pad="0") %>%
  str_replace("(\\w{2})", "\\1\\.") %>%
  as.numeric() %>%
  matrix(nrow=nrow(mat), ncol=ncol(mat))

得到

         [,1]    [,2]
[1,] 10.21000 54.2546
[2,] 20.13021 25.4000
[3,] 10.02000  0.2000

【讨论】:

  • 我找到了简单的解决方案:paste0(substr(data$x, 1,2), ".", substr(data$x, 3, nchar(data$x)))。对于其他列运行此功能
  • 你可以回答你自己的问题! ;-)
  • 我知道这个操作可以用命令来完成,但是没有在矩阵上做。不管怎样,谢谢你的回答
猜你喜欢
  • 2022-08-02
  • 1970-01-01
  • 1970-01-01
  • 2018-12-02
  • 2021-12-08
  • 2016-04-25
  • 2020-05-07
  • 1970-01-01
  • 2023-04-05
相关资源
最近更新 更多