2016-08-25 6 views
-1

time_of_day에 대한 모든 데이터 프레임 열에 대한 ANOVA를 수행하려고합니다. 나머지 열은 모두 복식이며 같은 길이입니다.문자열을 수식으로 사용하는 방법

x = 0 
pdf("Time_of_Day.pdf") 
for (i in names(data_in)){ 
    if(x > 9){ 
    test <- aov(paste(i, "~ time_of_day"), data = data_in) 
    } 
    x = x+1 
} 
dev.off() 

이 코드를 실행하면 나에게이 오류 제공 :

Error: $ operator is invalid for atomic vectors 

내 코드가 $를 호출을? 이 문제를 어떻게 해결할 수 있습니까? 죄송합니다. 전 r 님을 처음 보았고 꽤 분실했습니다.

내 연구 질문은 시간이 뇌의 다른 ROI에서 뇌의 볼륨에 영향을 미치는지 확인하는 것입니다. 시간은 오전, 오후 또는 밤의 세 가지 범주로 나뉩니다.

편집 : SOLVED 문자열을 수식으로 처리하면 모델의 통계 결과가 부풀어 오르는 것처럼 많은 독립적 인 값을 갖지 말라는 권고를 받았지만이를 실행할 수 있습니다. 이 사람은 aov() 호출과 비슷한 문제가 있음을 제거하지 않습니다.

x = 0 
pdf("Time_of_Day.pdf") 
for (i in names(data_in)){ 
    if(x > 9){ 
    test <- aov(as.formula(paste(i, "~ time_of_day")), data = data_in) 
    } 
    x = x+1 
} 
dev.off() 

답변

1

당신의 문제는 ANOVA 수식이 aov() 함수에 통합되어 있지 않다는 것입니다. 다음 작업 예를 참조하십시오

data_in <- data.frame(c(1,2,3),c(4,5,6),c(7,8,9)) 
names(data_in) <- c("first","second","third") 

for (i in seq_along(names(data_in))){ 
    test <- aov(data_in$first ~ data_in$second, data = data_in) 
    print(summary(test)) 
} 

그러나, 당신이 두 개 이상의 변수를 필요로하는 반면, 각 열에 대한 분산 분석을 계산하기 위해 노력 것으로 보인다. 즉, 공칭 스케일 조건 변수 및 간격 스케일 종속 변수 (예 : 성별 및 체중). 그래서 ANOVA가 당신의 질문에 맞는 올바른 방법인지 궁금합니다. 어쨌든,이 질문에 답하기 위해 샘플 데이터와 연구 질문 요약이 필요합니다.

+0

내 조건 변수는 1 (아침), 2 (오후) 또는 3 (밤)의 값을 제공하는 'time_of_day'입니다. 종속 변수는 뇌의 여러 부위의 부피입니다. 두뇌에는 'time_of_day'에 대해 분석하고자하는 104 개의 다른 영역이 있습니다. 그래서 데이터 프레임의 모든 열을 반복하고 있습니다. 이 anova가 작동하도록하려면 무엇을 변경해야합니까? – Chriscross

+0

또한 ANOVA가 내 aov() 호출에 통합되어 있지 않다는 것은 무엇을 의미합니까? – Chriscross

+0

좋아,이 시도하고 오류없이 실행되지만 왜 확실하지? "x = 0 pdf"에 대한 (이름 (데이터 인)) { if (x> 9) { test <- aov (data_in [[i] ] ~에 Data_IN $의 TIME_OF_DAY) 인쇄 (요약 (테스트)) } X = X + 1 } dev.off는()'내가 여기에 게시 무엇 – Chriscross

관련 문제