On Jun 11, 2009, at 11:48 AM, Lesandro wrote:
How to force R to print 2 decimal places in column of a data.frame?
I tried to do so:
x = inp(format(rounf(inp$Tamanho, 2), nsmall = 2),)
where "INP" is data.frame and "Size" is the name of column. But has
error:
Error in eval.with.vis(expr, envir, enclos) :
could not find function "inp"
Lesandro
Your code and description above appear to have some typos in it and
the use of the round() and format() functions are not what you want
here.
You code has inp(...), where R is presuming that you are referring to
a function called 'inp', hence the error message, since the function
does not exist.
Better to use sprintf() with an appropriate format specifier:
set.seed(1)
vec <- rnorm(10)
> vec
[1] -0.6264538 0.1836433 -0.8356286 1.5952808 0.3295078 -0.8204684
[7] 0.4874291 0.7383247 0.5757814 -0.3053884
> sprintf("%.2f", vec)
[1] "-0.63" "0.18" "-0.84" "1.60" "0.33" "-0.82" "0.49" "0.74"
[9] "0.58" "-0.31"
See ?sprintf for more information. Note that the presumption here is
that you want to output the numeric values to a formatted character
vector for display purposes, perhaps in a table, etc.
So if your actual data frame is called 'INP' and the column is called
'Size', you would use:
sprintf("%.2f", INP$Size)
HTH,
Marc Schwartz
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.