1

x最初の列 ( ) のデータが、テーブルの残りの 2,314 エントリのいずれかと負の相関があるかどうかを判断する、槍兵の相関テストを行うことに興味があります。

x比較する詳細を手動で入力すると、使用している入力は問題ないようですy。たとえば、次のようになります。

data<-read.table("input.txt",header=TRUE)
x=data[,1]
y=data[,2]
cor.test(x,y,method="s")

..ただし、forループを適用して 2314 列すべてを反復すると、(1) 機能しませんが、(2) エラーは発生しません。

data<-read.table("input.txt",header=TRUE)
x=data[,1]
y=data[,2:2314]
for (i in y){
cor.test(x,i,method="s")
}

これが私のデータの短い例です:

GeneData    Test_Gene   Gene1   Gene2   Gene3   Gene4
Day1    429.92  5948.10 49.09   7965.23 1367.21
Day2    273.64  6394.40 66.39   4858.45 1529.97
Day3    2505.83 3384.90 45.99   5881.83 906.59
Day4    1290.60 3364.54 48.15   5754.26 894.16

「Test_Gene」が残りのサンプル (Gene1、Gene2、Gene3、または Gene4) のいずれかと相関するかどうかを確認したいと思います。

4

2 に答える 2

2

使用できますlapply

x <- data[1]
lapply(data[-1], cor, x = x, method = "spearman")

を行うにはcor.test、二重括弧を使用して最初の列を (1 列のデータ フレームとしてではなく) 数値ベクトルとして抽出する必要があります。

x <- data[[1]]
lapply(data[-1], cor.test, x = x, method = "spearman")
于 2013-06-27T16:35:06.717 に答える
1

コードの問題は、 の結果に対して何もしないことですcor.test<-またはそれを何かに割り当てる必要がありますprint

x=data[,1]
y=data[,2:2314]

corr.values <- vector("list", 2313)
for (i in 1:length(y) ){
            corr.values[[i]] <- cor.test(x, y[[i]], method="s")
            }
head(corr.values)
于 2013-06-27T16:54:48.433 に答える