我在R中有一个数字向量:
c(0.9, 0.81)
我想提取此向量中每个元素的位数。在这种情况下,该命令将返回
1
和2
,因为数字是9
和81
。有方便的方法吗?另外,如果结果是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/