2013-04-08 81 views
0

我想格式化数值,但在格式化过程中,它们会丢失“数字”质量。有更好的选择吗?格式化数值

> values 
[1] 5 10 20 30 
> class(values[1]) 
[1] "numeric" 
> class(values) 
[1] "numeric" 
> out<-sprintf("%6.2f",values) 
> out 
[1] " 5.00" " 10.00" " 20.00" " 30.00" 
> class(out) 
[1] "character" 
> class(out[1]) 
[1] "character" 

out不再是数字。

+2

你可以添加一些上下文来描述你正在用这些值做什么,这样你可以陛下他们被格式化在一个特定的方式?它会在答案的内容上有所作为。 – joran 2013-04-08 18:55:17

回答

0

您可以使用printoptions改变印刷的位数:

R> print(3.141592, digits=3) 
[1] 3.14 

您还可以设置options(digits),使或多或少在会话中永久:

R> options(digits=3) 
R> print(3.141592) 
[1] 3.14 

但这不一定适用于情节等

+0

嗨朱巴,但我想做data.frame中的值的格式,而不仅仅是在屏幕上显示。谢谢。 – Sergey 2013-04-08 19:18:40

+0

使用'round()'? – juba 2013-04-08 19:19:50