rprintingconsoledataframe

Print pretty data.frames/tables to console


Is there a way to print small data.frames to the console in a more readable manner?

For example, would it be possible to output to the console:

library(MASS)   
iris[1:5, ]

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa

as

iris[1:5, ]

  +--------------+-------------+--------------+-------------+---------+
  | Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
  +--------------+-------------+--------------+-------------+---------+
1 |          5.1 |         3.5 |          1.4 |         0.2 |  setosa |
2 |          4.9 |         3.0 |          1.4 |         0.2 |  setosa |
3 |          4.7 |         3.2 |          1.3 |         0.2 |  setosa |
4 |          4.6 |         3.1 |          1.5 |         0.2 |  setosa |
5 |          5.0 |         3.6 |          1.4 |         0.2 |  setosa |
  +--------------+-------------+--------------+-------------+---------+

I realise for large data.frames it would take up an unnecessary amount of time, but if it's an option, I would like to be able to look at small frames in a more structured manner.

In particular, when I have two text fields next to each other, it would be much easier with a pipe between the two fields to separate them, as the spacing between words is the same size as the spacing between columns.

Thanks


Solution

  • In case it helps anyone, I just stumbled across the fact that knitr's kable achieves a nice pretty print. Combine with some of the .Rprofile suggestions above, this seems to achieve what I had in mind.

    > knitr::kable(head(iris))
    
    | Sepal.Length| Sepal.Width| Petal.Length| Petal.Width|Species |
    |------------:|-----------:|------------:|-----------:|:-------|
    |          5.1|         3.5|          1.4|         0.2|setosa  |
    |          4.9|         3.0|          1.4|         0.2|setosa  |
    |          4.7|         3.2|          1.3|         0.2|setosa  |
    |          4.6|         3.1|          1.5|         0.2|setosa  |
    |          5.0|         3.6|          1.4|         0.2|setosa  |
    |          5.4|         3.9|          1.7|         0.4|setosa  |