0

欠損値のあるゲノム データがあり、利用可能な値を使用して各遺伝子ペアの発現レベル間の距離を計算したいと考えています。次に、ギャップを埋めるために K 個の最近傍を発見したいですか? Rでそれを行うにはどうすればよいですか?

gene sample 1   sample 2    sample 3    sample 4
1      5555        NA          2151       5484    
2      5564        NA            NA        NA
3      4544       4656         14546       45455   
4      NA         54654           NA        NA

... ユークリッド距離を計算するにはどうすればよいですか? 一度に1行だけ使用する必要がありますか?

申し訳ありませんが、私はゲノムデータが初めてで、この情報がどこにも見つかりません。

ありがとう。

4

2 に答える 2

2

あなたがやろうとしているのは、knn分類ではなく、欠損値のknn代入だと思います。上のパッケージimpute.knnから呼び出される既製の関数があります。使用する前にヘルプファイルをよく読んでください。imputebioconductor

source("http://bioconductor.org/biocLite.R")
biocLite("impute")
require(impute)

x <- rnorm(1000, 50, 5)  # 1000 random samples
x[sample(1:1000, 50)] <- NA  # 50 are randomly made NA
x <- matrix(x, nrow = 10)  # make a matrix
impute.knn(x)
于 2013-03-19T12:21:52.927 に答える
0

グーグルで検索すると、クラスパッケージR k nearest neighborの関数にたどり着きます。knn2番目の質問に関して、ユークリッド距離の計算は簡単です:

sqrt((sample1_x - sample1_y)^2 + ... + (sample4_x - sample4_y)^2)

ここでx、 とyは、距離を計算する行のインデックスです。ただし、データには多くの NA があります。NA が含まれている場合、ユークリッド距離は定義されていないため、どのように対処する必要があるかわかりません。

于 2013-03-19T10:01:46.890 に答える