[R] Dataframes - Integer and decimal in same column?
Duncan Murdoch
murdoch.duncan at gmail.com
Sat Nov 7 00:44:52 CET 2015
On 06/11/2015 3:26 PM, Deepthi Theresa wrote:
> Hi all,
>
> My question is about R dataframes. I am making html reports using R
> datframe tables and RMarkdown.
>
> I have a dataframe with integer values on it and I had to rbind another
> dataframe with decimal values with the first dataframe.
>
> After the rbind function all values changed to decimal values. Can we keep
> integer and decimal numbers in the same column? Or at least round some of
> the decimal rows to zero decimal point. anything works. I just want to
> show the integer rows as integer values and decimal rows as decimal
> values.
>
There are two issues here.
There is the type of the value, and the format for displaying it.
You can't mix integer type data and floating point data in the same
column. The integer values will be converted to floating point.
R by default displays floating point values with the same number of
decimal places throughout the column, so data.frame(x = c(1, 1.1)) will
display as
x
1 1.0
2 1.1
and I think this is what you want to avoid. There are a few ways to do
this, but the easiest is to convert the column to character using
whatever format you want, e.g.
data.frame(y = c(as.character(1), as.character(1.1)))
will display as
y
1 1
2 1.1
If the numbers are already in the same column, you could do it as
data.frame(z = sprintf("%g", c(1, 1.1)))
Duncan Murdoch
More information about the R-help
mailing list