保存对象的结构

kod*_*911 1 r

是否有可能在 R 中序列化对象的结构。我所说的序列化是指类似于utils::str()base::structure()函数的东西。该函数工作得很好,但它们只是打印结构,而没有将其分配给变量的选项。

我尝试使用递归来做到这一点(只是为了获取类):

x <- list("aaa",
          c("asd", "test", "asdfre"),
          b = list("bbbb"),
          c1 = as.list(c("l1", "l2")),
          c = list("aaa", 
                   b = "bbbbb", 
                   list("aaa", 
                        s = c(123, 122)), 
                   l = list(a = list("aa", 
                                     "bb"), 
                            b = c(12, 123))))




getStructure <- function(x){
  if(!is.list(x)){
    return(list(class(x)))
  } else{
      sapply(x, function(x) { if(!is.null(x)) getStructure(x) })
  }
}

getStructure(x)
Run Code Online (Sandbox Code Playgroud)

str()但它的工作方式与和函数的工作方式不同structure()

Gre*_*gor 5

capture.output是捕获通常打印到控制台的任何内容的一般方法。

x = capture.output(str(mtcars))
Run Code Online (Sandbox Code Playgroud)