user3091668 user3091668 - 3 months ago 11
R Question

Limiting the number of decimals in a dataframe (R)

I would like to limit the number of decimals when a data frame is imported. My .txt input have 16 decimals to each row in collumn "Value". My dataframe look like that:

Value

0.202021561664556
0.202021561664556
0.202021561664556
0.202021561664556
...


My expected dataframe

Value
0.20202156
0.20202156
0.20202156
0.20202156
...


Real input (DF) that not works:

DF <- "NE001358.Log.R.Ratio
-0.0970369274475688
0.131893549586039
0.0629266495860389
0.299559132381831
-0.0128804337656807
0.0639743960526874
0.0271669351886552
0.322395363972391
0.179591292893632"

DF <- read.table(text=DF, header = TRUE)

Answer

Here is.num is TRUE for numeric columns and FALSE otherwise. We then apply round to the numeric columns:

is.num <- sapply(DF, is.numeric)
DF[is.num] <- lapply(DF[is.num], round, 8)

If what you meant was not that you need to change the data frame but just that you want to display the data frame to 8 digits then it's just:

print(DF, digits = 8)