6

私は1つの問題に遭遇しました:

temp.fun <- function() {}
as.character(temp.fun)

エラーが発生します。関数を文字に「変換」できない理由がわかりました。as.character問題は、メソッドが自分で定義した文字列を返すように関数に追加するプロパティは何ですか?

どうもありがとう!

4

1 に答える 1

7

deparse助けられる:

> deparse( temp.fun )
[1] "function () " "{"            "}"

コメントの詳細をさらに進めると、できることはfunction、関数の代わりに派生してこれを渡すクラスを作成することです。

setClass( "myFunction", contains = "function" )
setMethod( "as.character", "myFunction", function(x, ...){
    deparse( unclass( x ) ) 
} )

そのため、関数をサードパーティ パッケージに渡すときは、myFunction代わりにa を渡します。

f <- new( "myFunction", function(){} )
as.character(f)
# [1] "function () " "{"            "}"
于 2012-11-22T17:59:05.080 に答える