我在R中有一个数字向量:

 c(0.9, 0.81)

我想提取此向量中每个元素的位数。在这种情况下,该命令将返回12,因为数字是981。有方便的方法吗?另外,如果结果是1,如何扩展为两位数?例如,我希望返回的向量为
 c(0.90, 0.81)

最佳答案

x <- c(0.9,0.81,32.52,0);
nchar(sub('^0+','',sub('\\.','',x)));
## [1] 1 2 4 0

这将除去小数点,然后除去所有前导零,最后将字符串长度用作计算有效位数的间接手段。对于零输入,它自然会返回零,但是您可以使用if表达式显式测试该情况,并根据需要返回一个。

如akrun所述,对于小数点后两位数字的打印:
sprintf('%.2f',x);
## [1] "0.90"  "0.81"  "32.52" "0.00"

关于r - 计算R中数字向量中的位数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31894169/

10-13 03:21