如何用R中的分号分隔每行函数体

时间:2013-02-25 16:17:46

标签: r function

在R中我有一个函数“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,";")
    }

现在我得到以下输出。

  

体   [1]“{; className&lt; - name; pf = list(name = name,get = function(x)pf [[x]],set = function(x,value)pf [[x]]&lt; - value); pf $ getCash = function(date){\ n data&lt; - data.frame(name = name,value = \“null \”)\ n return(data)\ n}; pf $ setCash = function(现金,日期){\ na&lt; - insertCashTable(pf $ name,cash,date)\ n return(\“success \”)\ n}; pf&lt; - list2env(pf); class(pf)&lt; - name; return(pf);“

问题是pf $ setCash和pf $ getCash下的语句没有用逗号分隔。 我怎样才能克服这个问题?

1 个答案:

答案 0 :(得分: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