[R] Formatting digits in a table with mix of numbers and characters

Brian Hobbs brhobbs at gmail.com
Thu Nov 8 17:14:50 CET 2012


Hello,

I am currently trying to find an easy way to take a table with a mix
of numbers and characters and format the numbers in the table to be
constrained to 4 significant digits.

Example:

#this is my table creation
> table <- matrix(c(12.34567, "--", 10, 12.34567, "--", "NA", "--", 123.45678,  "--"), ncol = 3, byrow=TRUE)
>
> table
     [,1]       [,2]        [,3]
[1,] "12.34567" "--"        "10"
[2,] "12.34567" "--"        "NA"
[3,] "--"       "123.45678" "--"

#I would like for it to be
     [,1]       [,2]        [,3]
[1,] "12.35"   "--"        "10"
[2,] "12.35"   "--"        "NA"
[3,] "--"       "123.5"     "--"

I am using the "xtable" package and attempt to use the digits()
argument within xtable; however, this did not format the numbers,
likely because my table was forced to character values when I created
it using matrix(). I am not bothered by the character values in my
final xtable result; however...

I have two questions:
1) Is there a better way to create my table so that the original
numeric values are not forced to characters prior to transfer to
xtable?
2) Aside from using signif() or round() on each numeric element within
my matrix as I create the variable "table", is there a way to get my
numeric elements to have 4 significant figures prior to be manipulated
by xtable()?



Environment: R Studio 0.96.331
R version: 64-bit 2.15.2


Thank you for the help,
Brian Hobbs
Pulmonary and Critical Care Fellow
Harvard Combined Program



More information about the R-help mailing list