1

データセットの各行で関数を呼び出す関数を作成しました。ベクトルとして出力したいと思います。以下に示すように、関数は結果を画面に出力しますが、関数の外部で使用できるベクトルに出力をリダイレクトする方法がわかりません。

n_markers <- nrow(data)
p_values <-rep(0, n_markers)

test_markers <- function()
   {
   for (i in 1:n_markers)
      {
      hets  <- data[i, 2]
      hom_1 <- data[i, 3]
      hom_2 <- data[i, 4]   
      p_values[i] <- SNPHWE(hets, hom_1, hom_2)
      }
      return(p_values)
   }

test_markers()
4

1 に答える 1

4

ここからこのコードを取得しましたか?あなたが最初にそれを自分で理解しようとさえしなかったのではないかと心配していますが、うまくいけば私は間違っています。

あなたはこれを考えすぎているかもしれません。他の関数の場合と同じように、関数の結果をベクトルに格納するだけです。

stored_vector <- test_markers()

しかし、コメントで述べたように、あなたの関数はおそらく次のように減らすことができます:

stored_vector <- sapply(1:nrow(data), function(i) SNPHWE(data[i,2],data[i,3],data[i,4]) )
于 2012-05-03T13:32:36.730 に答える