这个问题已经在这里有一个答案:
- 力R不使用指数符号(如E + 10)? 4个回答
我不希望看到任何科学记数法在我的R对话的任何计算的任何结果。 我希望看到所有的实际数字,最好是用逗号(,),每三个数字后。
我怎样才能做到这一点? options(scipen = 999)
不剪。
这个问题已经在这里有一个答案:
我不希望看到任何科学记数法在我的R对话的任何计算的任何结果。 我希望看到所有的实际数字,最好是用逗号(,),每三个数字后。
我怎样才能做到这一点? options(scipen = 999)
不剪。
该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)