2017-10-27 5 views
1

私は0-10の数値を持つ選挙ポーリングデータを持つデータセットを持っています。 私はこれらの値を持つ30個の列を持っており、すべての列を と他のすべての列と比較して、相関行列を作成したいと考えています。issue for()ループのネストされた相関行列を作成しようとしています

Error in columnlist[i, j] <- cor(feeling_therm[, i], feeling_therm[, j], : 
     incorrect number of subscripts on matrix 

この権利を取得する方法上の任意の提案: ] しかし、私は次のエラーコードを得続けますか?私はまだRの構文に慣れています。

答えて

0

ただcor(election)を使用してください。これは、相関行列を作成する必要があります。

+0

ありがとうございます!上記のループコードを修正して同じことをする方法はありますか? –

0

Nathan Werthが述べたように、cor(election)はうまく動作します。あなたがループに使用を主張する場合は、あなたがいないリストとして、(正しい寸法を含む)は、マトリックスとして、あなたの行列を初期化する必要があります。

election <- replicate(5, rnorm(n = 100)) 
election <- as.data.frame(election) 

cor_matrix <- matrix(nrow = ncol(election), ncol = ncol(election)) 

for (i in 1:ncol(election)) { 
    for (j in 1:ncol(election)) { 
    cor_matrix[i,j] <- cor(election[,i], election[,j], use = "complete") 
    } 
} 
0

あなたの目的は、次リストに値を格納する場合オプションです。

n_col <- ncol(election) 
electionlist <- as.list(data.frame(matrix(NA, n_col, n_col))) 


for (i in 1 : n_col) { 
    for (j in 1 : n_col) { 
    electionlist[[c(i, j)]] <- cor(election[,i], 
           election[,j], use = "complete") 
    } 
} 
関連する問題