2017-07-26 3 views
1

rパッケージqgraphのqgraph()関数を変更して、グラフィカルなパラメータを大幅に変更しようとしています。しかし、これらの変更を試みる前に、私は関数のソースコードにアクセスし、それを新しい関数(すなわちqgraph2())として再ロードし、big5サンプルデータで実行しました。私が受け取るエラーはcould not find function "getArgs"と表示され、getArgsが隠れた機能であると思われます。 しかし、qgraph環境またはrグローバル環境でgetArgs()を見つけることができず、どのrドキュメント(?getArgs??getArgs)でもそのレコードを見つけることができないので、どこから呼び出すかわからないその情報を見つけてください。さらに、qgraph()関数には隠された関数が潜んでいると思われます。 私の質問は二つ折りです:まず、getArgs()が非表示になっている場所を見つけ出し、それに応じてアクセスするにはどうしたらいいですか?そして、第二に、変更された関数qgraph2が、 。 ありがとうございます。非常にうまく隠れている隠し機能にアクセスする方法

+0

'?assignInNamespace' – Roland

+1

も'?getAnywhere' – Roland

答えて

3

あなたの機能が隠されている場所を知っている場合は、コードを見るには:::オペレータを使用することができます。

これがわからない場合は、getAnywhereを使用してください。それはまた、あなたが探している機能がどこにあるのかを伝えます。

getAnywhere(getArgs) 
A single object matching ‘getArgs’ was found 
It was found in the following places 
    namespace:qgraph 
with value 

function (args) 
{ 
    if (length(args) > 0) { 
     isqgraph <- sapply(args, function(x) "qgraph" %in% class(x)) 
     argLists <- c(lapply(args[isqgraph], "[[", "Arguments"), 
      lapply(args[isqgraph], "[", "layout")) 
     args <- args[!isqgraph] 
     newArgs <- lapply(argLists, getArgs) 
     for (l in newArgs) args <- c(args, l[!names(l) %in% names(args)]) 
    } 
    return(args) 
} 
<bytecode: 0x000000001e900d50> 
<environment: namespace:qgraph> 




> qgraph:::getArgs 
function (args) 
{ 
    if (length(args) > 0) { 
     isqgraph <- sapply(args, function(x) "qgraph" %in% class(x)) 
     argLists <- c(lapply(args[isqgraph], "[[", "Arguments"), 
      lapply(args[isqgraph], "[", "layout")) 
     args <- args[!isqgraph] 
     newArgs <- lapply(argLists, getArgs) 
     for (l in newArgs) args <- c(args, l[!names(l) %in% names(args)]) 
    } 
    return(args) 
} 
<bytecode: 0x000000001e900d50> 
<environment: namespace:qgraph> 
+0

パーフェクト、そして今私はqgraphを使用して関数を呼び出すことができます:::ありがとうございます。 – Robert

関連する問題