2017-11-16 28 views
0

Rの新機能です。 "CircStat"というライブラリを使用しています。例えば関数の画面結果をRの変数に割り当てる方法

rao.spacing(angles) 

Rao's Spacing Test of Uniformity 

Test Statistic = 155.9671 

0.001 < P-value < 0.01 

を与え、そのライブラリの印刷における機能画面上の結果、「rao.spacingは関数であり、 『角度』ラジアンでいくつかの角度のリストです。

は、私はそれを行うことができますどのように、私のコードの他の部分でそれを使用する変数に、具体的には、出力を渡すために、「155.9671」が必要?

私はファイルAに書いていないことを好みます私は50,000以上の関数を使う必要があるので、それを読んでください。そして印刷は非常に時間がかかるでしょう。

おかげで、 萌え

+0

上記のパッケージはどこからインストールできますか?それはCRANにはないようです。 '< - '演算子を使って 'rao.spacing()'の結果をオブジェクトに代入することはできませんか? – crazybilly

+0

私の悪いです、それは "CircStats"であり、CRANにあります。 – moe

+0

いいえ、私は、すべての種類の操作を試みました、私が得るものはNULLです! – moe

答えて

0

はどうやら、CircStatsの著者はvalue-- rao.spacing()を返すために必要な機能を考えていませんでしたrao.spacing()のヘルプにNULL(ノートを返すように設計され、VALUEセクションは "simpleyですヌル")。

rao2 <- function (x, alpha = 0, rad = TRUE) 
{ 
    rao.table <- NULL 
    data(rao.table, package = "CircStats", envir = sys.frame(which = sys.nframe())) 
    if (rad == TRUE) 
    x <- deg(x) 
    x <- sort(x%%360) 
    n <- length(x) 
    spacings <- c(diff(x), x[1] - x[n] + 360) 
    U <- 1/2 * sum(abs(spacings - 360/n)) 
    if (n < 4) 
    stop("Sample size too small") 
    if (n <= 30) 
    table.row <- n - 3 
    else if (n <= 32) 
    table.row <- 27 
    else if (n <= 37) 
    table.row <- 28 
    else if (n <= 42) 
    table.row <- 29 
    else if (n <= 47) 
    table.row <- 30 
    else if (n <= 62) 
    table.row <- 31 
    else if (n <= 87) 
    table.row <- 32 
    else if (n <= 125) 
    table.row <- 33 
    else if (n <= 175) 
    table.row <- 34 
    else if (n <= 250) 
    table.row <- 35 
    else if (n <= 350) 
    table.row <- 36 
    else if (n <= 450) 
    table.row <- 37 
    else if (n <= 550) 
    table.row <- 38 
    else if (n <= 650) 
    table.row <- 39 
    else if (n <= 750) 
    table.row <- 40 
    else if (n <= 850) 
    table.row <- 41 
    else if (n <= 950) 
    table.row <- 42 
    else table.row <- 43 
    if (alpha == 0) { 
    cat("\n") 
    cat("  Rao's Spacing Test of Uniformity", "\n", 
     "\n") 
    cat("Test Statistic =", round(U, 5), "\n") 
    if (U > rao.table[table.row, 1]) 
     cat("P-value < 0.001", "\n", "\n") 
    else if (U > rao.table[table.row, 2]) 
     cat("0.001 < P-value < 0.01", "\n", "\n") 
    else if (U > rao.table[table.row, 3]) 
     cat("0.01 < P-value < 0.05", "\n", "\n") 
    else if (U > rao.table[table.row, 4]) 
     cat("0.05 < P-value < 0.10", "\n", "\n") 
    else cat("P-value > 0.10", "\n", "\n") 
    } 
    else { 
    cat("\n") 
    cat("  Rao's Spacing Test of Uniformity", "\n", 
     "\n") 
    cat("Test Statistic =", round(U, 5), "\n") 
    if (sum(alpha == c(0.001, 0.01, 0.05, 0.1)) == 0) 
     stop("Invalid significance level") 
    table.col <- (1:4)[alpha == c(0.001, 0.01, 0.05, 0.1)] 
    critical <- rao.table[table.row, table.col] 
    cat("Level", alpha, "critical value =", critical, "\n") 
    if (U > critical) 
     cat("Reject null hypothesis of uniformity", "\n", 
      "\n") 
    else cat("Do not reject null hypothesis of uniformity", 
      "\n", "\n") 
    } 


    return(U) 
} 

myvalue <- rao2(angles) 
:あなたは関数自体を調べる場合

しかし、独自のバージョンを作成することによって、それが戻り値にハックするのは非常に簡単です(RstudioにF2を打つ、またはいずれかの括弧や引数のない関数でタイプ)

最後にreturn(U)があります。これは、探している価値を引き出すことになります(ただし、機能が設計されていることを意識することなく、あなた自身でそのような健全性チェックを実行する必要があります)。

+0

それは多くの助けになりました!私は感謝します! – moe

関連する問題