r - 求r中有效位数与小数点后的位数

标签 r decimal significant-digits

我想找到具有不同尺度的数字向量中有效数字的数量。

例如,数字 1000 有 1 位数字; 数字 100 也有 1。数字 1300 有 2。

不要将其与小数点后的位数混淆,在这两种情况下都等于 0。

最佳答案

此函数会将向量中的每个值转换为字符值,删除所有前导零、尾随零和小数位,并计算剩余的字符数。它的性能似乎与 phiver 的答案相当。

sigfigs <- function(x){
  orig_scipen <- getOption("scipen")
  options(scipen = 999)
  on.exit(options(scipen = orig_scipen))

  x <- as.character(x)
  x <- sub("\\.", "", x)
  x <- gsub("(^0+|0+$)", "", x)
  nchar(x)
}

x <- c(1000,100,1300, 1200.1, 12345.67, 12345.670)

sigfigs(x)

注意事项:

此函数返回既不是前导零也不是尾随零的位数。这与有效位数并不完全相同。虽然前导零从来不重要,但尾随零可能重要也可能不重要——决定它们是否重要需要一些有关测量精度的知识。我建议阅读维基百科有关“有效数字”的文章以了解更多详细信息。

关于r - 求r中有效位数与小数点后的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49730224/

相关文章:

java - GraalVm 错误 : libgfortran. so.3 在 Node (Ubuntu) 中运行 R 代码

python - 如何将 python 2.7 中的 bytearray 转换为十进制字符串?

c - 我混淆的按位运算

java - java 计算有效数字

java - 内置显示有效数字的方法

r - 为除 ESS 以外的所有缓冲区启用公司模式

r - 多图pdf R

java - Java科学记数法

c++ - 将数字从字符串流转换为具有设定精度的字符串

r - R 中数据帧列表的按元素添加