2017-10-27 6 views
1

데이터 값이 0-10 인 선거 폴링 데이터가 있습니다. 이 값이있는 열이 30 개 있고 상관 행렬을 생성하기 위해 모든 열을 다른 모든 열과 비교하려고합니다.중첩 된 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") 
    } 
}