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))

これにより、関数行が 1 行ずつ 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 に答える