1

在 RI 中有一个函数“getHbasedPortfolio”。函数体如下:

body("getHbasedPortfolio")
{
  className <- name
  pf = list(name = name,
            get = function(x) pf[[x]],
            set = function(x,value) pf[[x]] <- value
            )

  pf$getCash = function(date) {

    data <-data.frame(name=name,value="null")
    return(data)
  }
  pf$setCash = function(cash, date) {

    a <- insertCashTable(pf$name, cash, date)
    return("success")

  }

  pf <- list2env(pf)
  class(pf) <- name
  return(pf)
}

我需要用逗号分隔每一行。所以我写了一个代码来做到这一点。我使用的代码如下:

body <-"";
 for(i in 1:length(as.character(body("getHbasedPortfolio")))){
      body <- paste(body,as.character(body("getHbasedPortfolio"))[i])
      body <- paste(body,";")
    }

现在我得到以下输出。

body [1] " { ; className <- name ; pf = list(name = name, get = function(x) pf[[x]], set = function(x, value) pf[[x]] <- value ) ; pf$getCash = function(date) {\n data <- data.frame(name = name, value = \"null\")\n return(data)\n} ; pf$setCash = function(cash, date) {\na <- insertCashTable(pf$name, cash, date)\n return(\"success\")\n} ; pf <- list2env(pf) ; class(pf) <- name ; return(pf ) ;"

问题是 pf$setCash 和 pf$getCash 下的语句没有用逗号分隔。我该如何克服这个问题?

4

1 回答 1

2

你可以使用这样的东西:

 dat <- data.frame(capture.output(getHbasedPortfolio))

这将通过 data.frame 中的一行保存您的函数行。然后,您可以将其保存在您的数据库中。

编辑

您可以使用 dat 逐行编写。

paste(data.frame(capture.output(getHbasedPortfolio))[,1],
      collapse=',') ## I would use another separator here becuase comma is confusing
于 2013-02-25T17:06:24.097 回答