On 30/01/2015 8:17 AM, Knut Krueger wrote:
Am 30.01.2015 um 12:51 schrieb Duncan Murdoch:

> You are mixing up formatting with storage.  Floating point numbers will
> be displayed without decimals if they are close enough to whole numbers.
>
> Duncan Murdoch
>

Ok, I am talking from display

data = matrix(c(1:16),nrow=4,ncol=4) #create matrix
data[4,] = data[4,]/3
data[,4] = data[,4]/3
#why is it displayed without decimals here:
data[1:3,1:3]
#and why is data[1:3,1:3] diplayed with 2 decimals here
data

and what could be the solution to display data[1:3,1:3] part when data
is used  without decimals, if there are no

The default formatting for matrices uses the same number of decimal places for all entries in a column. In the first case, none needed any decimals to get options("digits") worth of precision, so none were displayed. In the second case, entries in row 4 need 6 decimal places (on my system, maybe differently on yours) in columns 1, 2, and 4, so all values in those columns are displayed with 6 decimal places.

If you want formatting to work differently, you can write your own. For example, if you define

myprint <- function(x, ...) {
  result <- sub("[.][0]+", "", format.default(x, ...))
  print(noquote(result))
}

then

myprint(data)

might do what you want.

Duncan Murdoch

______________________________________________
[email protected] mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to