R 删除所有前导零并将数字转换为正数

R 删除所有前导零并将数字转换为正数,r,R,我试图在R中将.000278转换为278,但我看到的所有函数只能将其移动到.278。它必须是一个整数,正数 是否有一个函数可以删除数字前面的.0+?尝试此操作(len可调): a我假设您希望同时将此应用于多个数字(否则我可能不理解这个问题) 请注意,使用此方法,您需要使用as.numeric(不理想)将str\u replace的输出转换回数值。或使用 substr和regexpr什么正是你想要的 x <- 0.000278 as.numeric(substr(x ,regexpr("[^

我试图在R中将.000278转换为278,但我看到的所有函数只能将其移动到.278。它必须是一个整数,正数

是否有一个函数可以删除数字前面的.0+?

尝试此操作(
len
可调):


a我假设您希望同时将此应用于多个数字(否则我可能不理解这个问题)

请注意,使用此方法,您需要使用
as.numeric
(不理想)将
str\u replace
的输出转换回数值。

或使用

substr
regexpr
什么正是你想要的

x <- 0.000278
as.numeric(substr(x ,regexpr("[^0.]",x),nchar(x)))
[1] 278

.000278*1000000
?数字是字符还是数字?我认为
a*(10^(nchar(a)-2))
是最好的方法。您总是希望避免不必要的强制。谢谢您的评论,我更改了顺序。@RichardScriven
nchar
方法对
a失败您必须确保禁用科学记数法。首先尝试这样做:选项(scipen=999)。@Richard Scriven说得好,不幸的是我犯了一个错误,我已经改正了(请参阅我在文章中的编辑)。您的解决方案严重依赖
选项(“scipen”=100,“数字”=10)
。您应该更改R默认选项以使用它。
a <- c(0.003, 0.0056, 0.000278)#Example data
a*(10^(nchar(a)-2))
[1]   3  56 278
a <- c(0.003, 0.0056, 0.000278)#Example data
library(stringr)
as.numeric(str_replace(a, "0.", ""))
[1]   3  56 278
x <- 0.000278
as.numeric(substr(x ,regexpr("[^0.]",x),nchar(x)))
[1] 278
z <- 0.000000588
as.numeric(substr(z ,regexpr("[^0.]",z),nchar(z)))
[1] 588
>  as.numeric(gsub("^[0.]*", "", paste(0.000278)))
[1] 278