R: Create custom output from list object

后端 未结 1 1082
伪装坚强ぢ
伪装坚强ぢ 2021-01-22 19:55

I have a list that stores different data types and objects:

header <- \"This is a header.\"
a <- 10
b <- 20
c <- 30
w <- 1:10
x <- 21:30
y <         


        
相关标签:
1条回答
  • 2021-01-22 20:22

    If you want to use this kind of print regularly i would use a class as follows:

    class(mylist) <- "myclass"
    
    print.myclass <- function(x, ...){
      cat(x$header,"\n\n")
      cat("Values: ", sprintf("%s: %s", names(x$const), x$const), "\n\n")
      cat("Data:\n")
      print(x$data, ...)
    }
    

    If you want to learn more about generic function have a look at http://adv-r.had.co.nz/OO-essentials.html

    Printing now results in:

    > mylist #equal to print(mylist). Thats why we extended print with print.myclass
    This is a header. 
    
    Values:  a: 10 b: 20 c: 30 
    
    Data:
        w  x  y z
    1   1 21 51 0
    2   2 22 52 1
    3   3 23 53 2
    4   4 24 54 3
    5   5 25 55 4
    6   6 26 56 5
    7   7 27 57 6
    8   8 28 58 7
    9   9 29 59 8
    10 10 30 60 9
    

    Thanks to Ananda Mahto and David Arenburg for improving my original answer.

    0 讨论(0)
提交回复
热议问题