完全删除科学记数法为整个R对话[复制](Completely remove scientific n

2019-06-25 00:09发布

这个问题已经在这里有一个答案:

  • 力R不使用指数符号(如E + 10)? 4个回答

希望看到任何科学记数法在我的R对话的任何计算的任何结果。 我希望看到所有的实际数字,最好是用逗号(,),每三个数字后。

我怎样才能做到这一点? options(scipen = 999)不剪。

Answer 1:

print.default函数查看options()['digits']在“决定”分配什么宽度,所以你可能需要增加它,以及试图最大程度的发挥“scipen的价值。 有OS用值高于16为宽度的具体问题。 至于逗号请求,......算了吧。 R是不是一个财务报告制度。 如果您需要强制这种输出格式,你可以定义对象是特定类的,并使用sprintf和formatC写印刷方法他们,或者我想你可以重写print.default,但可能只影响那些不打印操作传递给另一100+方法一个print

有输出的方法。 formatC()prettyNum()都具有将插入逗号到数字的“big.mark”的说法。 输出是"character"的格式,所以不要尝试这样做。在创建结果的任何进一步的计算。

也有可以读取包含逗号或货币符号数列输入法:

setAs("character", "num.with.commas",  function(from) as.numeric(gsub(",", "", from))) 
setAs("character", "euro",
 function(from) as.numeric(gsub("€", "", from)))
setAs("character", "num_pct",
 function(from) as.numeric(gsub("%", "", from))/100)
# you will get warning messages if you have not defined the class,
#     ....  but this will still succeed

 Input <- "A B C
 1,000 1% 3.50€
 2,000 2% 4.77€
 3,000 3% €5.68
"
 DF <- read.table(textConnection(Input), header = TRUE,  
                colClasses = c("num.with.commas", "num_pct", "euro"))
 str(DF)


文章来源: Completely remove scientific notation for the entire R session [duplicate]