1
我需要以其他編程語言(其中編號不能超過14位數字)將som數據導出到文本文件。並非所有元素都需要用逗號分隔,所以這就是我使用這種方法的原因。R:用gsub替換科學記數法中的數字強制的字符串
問題在於gsub
在強制轉換爲字符串時沒有重新調整數字42,科學計數選項scipen
設置得足夠低,因此42會以電子表示法打印。
這裏scipen=-10
so 42用E-notation打印。
x <- 4.2e+1 # The meaning of life
options(scipen = -10)
gsub(pattern=x,replacement=paste(",",x),x,useBytes=TRUE)
[1] "4.2e+01"
gsub(pattern=x,replacement=paste(",",x),x,useBytes=FALSE)
[1] "4.2e+01"
這就像gsub不重新匹配。我也試過,
gsub(pattern=x,replacement=paste(",",x),as.character(x))
但沒有運氣。
在以下兩個示例中,gsub
按預期行事,並且scipen=0
足夠高以確保42被打印爲42
。
x <- 4.2e+1 # Still the meaning of life
options(scipen = 0)
gsub(pattern=x,replacement=paste(",",x),x,useBytes=TRUE)
[1] ", 42"
gsub(pattern=x,replacement=paste(",",x),x,useBytes=FALSE)
[1] ", 42"
正如你所看到的useBytes
選項doens't沒有幫助。有人可以告訴我我沒有得到什麼。
謝謝。