2016-10-05 2 views
1

同じ名前の列を含み、それらの列の値が異なる2つのデータセットがあります。たとえば、別々のデータセットからの2つの対応する列間の相関

m1 <- matrix(1:9, nrow = 3, ncol = 3, byrow = TRUE, 
      dimnames = list(c("s1", "s2", "s3"),c("cow", "dog","cat"))) 
m2 <- matrix(1:9, nrow = 3, ncol = 3, byrow = FALSE, 
      dimnames = list(c("s1", "s2", "s3"),c("dog", "cow","cat"))) 
> m1 
    cow dog cat 
s1 1 2 3 
s2 4 5 6 
s3 7 8 9 
> m2 
    dog cow cat 
s1 1 4 7 
s2 2 5 8 
s3 3 6 9 

対応する列間の相関を計算するためにcor.test()を使用して関数を作成したいと考えています。例えば。牛vs牛、犬vs犬。 cor.test()を使う理由は相関係数とp値を求めたいからです。だから、もしこの情報を得る他の方法があれば、私はそれらの情報も公開しています。実際のデータセットには何千もの列があり、ランダムに整理されているので、最初に列を突き合わせて相関を計算する方法を探しています。何か案は?ここで

答えて

2

は、共通の列にlapplyを使用して、ソリューションです:

# Common columns 
cols <- intersect(colnames(m1), colnames(m2)) 

# For each column, compute cor test 
res <- lapply(cols, function(x) cor.test(
    m1[, x], 
    m2[, x] 
)) 

names(res) <- cols 

結果は、あなたがこのようにアクセスすることができますhtestオブジェクトのリストです:魔法のようにres[["cow"]]

+0

作品、ありがとう! – JMM

関連する問題