web-dev-qa-db-ja.com

1つの変数をR上の他のすべての変数に相関させる方法

1つの変数(たとえばチロシン)をRの他のすべての変数(尿素、ブドウ糖、イノシンなどの他の約200の代謝物)と相関させたいのですが、どうすればよいかわかりません。私はRに不慣れです。

ペア関数を学びましたが、それは他に指定された範囲のすべての代謝物をペアにします。

ありがとう!

8
user3071533

あなたは「代謝物」について言及しているので、あなたの測定基準は「濃度」であると思います。行列があることをdataと呼びます。これは、代謝物ごとに1つの列、サンプルごとに1つの行を持ちます。

だから、このようなもの:

# just generates example - YOU SHOULD PROVIDE THIS!!!
data <- data.frame(tyrosine=1:10 + rnorm(10,sd=2), 
                   urea    =2*1:10 + rnorm(10,sd=2),
                   glucose =30 -2*1:10 +rnorm(10,sd=2),
                   inosine =25 -1:10 + rnorm(10,sd=2))
data
     tyrosine      urea  glucose  inosine
1  -0.2529076  5.023562 29.83795 26.71736
2   2.3672866  4.779686 27.56427 22.79442
3   1.3287428  4.757519 24.14913 22.77534
4   7.1905616  3.570600 18.02130 20.89239
5   5.6590155 12.249862 21.23965 17.24588
6   4.3590632 11.910133 17.88774 18.17001
7   7.9748581 13.967619 15.68841 17.21142
8   9.4766494 17.887672 11.05850 16.88137
9  10.1515627 19.642442 11.04370 18.20005
10  9.3892232 21.187803 10.83588 16.52635

相関係数を取得するには、次のように入力します。

cor(data)
           tyrosine       urea    glucose    inosine
tyrosine  1.0000000  0.8087897 -0.9545523 -0.8512938
urea      0.8087897  1.0000000 -0.8577782 -0.8086910
glucose  -0.9545523 -0.8577782  1.0000000  0.8608000
inosine  -0.8512938 -0.8086910  0.8608000  1.0000000

散布図行列を生成するには、次のように入力します。

pairs(data)

将来的にはRにインポートできるデータの例を含めてください

11
jlhoward

次の例では、すべての変数を含むデータフレームを2つの行列に単純に分割します。これらをcor関数に入力して、相関値を取得できます。

set.seed(1)
n=20
df <- data.frame(tyrosine=runif(n), urea=runif(n), glucose=runif(n), inosine=runif(n))
df

COR <- cor(as.matrix(df[,1]), as.matrix(df[,-1]))
COR
#           urea    glucose    inosine
#[1,] -0.2373854 -0.3672984 -0.3393602
9
Marc in the box

適用名と列名を使用したボックス内のマークに似ています

> set.seed(1)
> n=20
> df <- data.frame(tyrosine=runif(n), urea=runif(n), glucose=runif(n), 
  inosine=runif(n))

> apply(df,2, function(col)cor(col, df$tyrosine))

tyrosine       urea    glucose    inosine 
1.0000000 -0.2373854 -0.3672984 -0.3393602 

チロシンコル(OPが具体的に要求したもの)のみを計算し、すべて対すべて(〜n)ではなく、チロシンコル(n時間+空間)のみを計算する場合に効率的であるため、妥当なサイズのデータ​​を知ることは良い質問であり、パターンです。 ^ 2時間+スペース)。

5