2017-08-20 4 views
1

This questionは、オブジェクトに使用できるメソッドのリストを抽出するためにmethods(class=class(obj))を使用することを示唆しています。長さ(クラス)> 1のオブジェクトのメソッド

length(class(obj))>1のオブジェクトで使用すると、警告が多く表示されます。

set.seed(101) 
a <- matrix(rnorm(20), nrow = 10) 
b <- a + rnorm(length(a)) 
obj <- lm(b ~ a) 

c("lm","mlm")としてclass(obj)与えます。 引数 'パターン' 長さ> 1と最初の要素のみが使用される
警告を有する:methods(class=class(obj))

多数回)はgrepで<警告(パターン、all.names、値= TRUE)を与えます'pattern'の長さが1より大きく、最初の要素のみが使用されます
サブタイプ(paste0( "\。"、クラス "$")、 、row.names(info)): 引数 'pattern'の長さが1より大きく、最初の要素のみが使用されます

である。

class(obj)最後要素がうまくいくにmethods(class=...)を適用すること(?)ようだが、私は正しいことである(かない)理由として代替または議論に興味がある...

明確にするために、戻り値を(好ましくは一意の)文字ベクトルにしたいので、if ("foo" %in% allmethods(obj))のようなものを使用して、オブジェクトの指定されたメソッドの可用性をテストすることができます。

答えて

2

これはあなたです探している?引数generic.functionmlmなるので、以下のコードは、エラーを与えること

sapply(class(obj), function(x) methods(class = x)) 

注。上のように引数はclassでなければなりません。

sapply(class(obj), methods) 
Error in .S3methods(generic.function, class, parent.frame()) : 
    no function 'mlm' is visible 
+0

これは2つのオブジェクトのリストを示します。 'methods()'は、クラス "MethodsFunction"のやや複雑なオブジェクトを返します。私は、ユニークな(unlist(sapply(class obj)、function(x)as.character(methods(class = x)))) ''(ugh) –

関連する問題