2014-10-21 2 views
0

Я новичок в R, и в настоящее время я работаю с данными участников, в которых я хочу запустить ANOVA для каждой категории.Как запустить ANOVA для определенных переменных в R, используя CSV?

Я прочитал мои данные из моего CSV, используя следующую строку кода:

CSV <- read.csv("data.csv", header=TRUE) 

вектор CSV теперь много набл. из 12 переменных. Последняя переменная отображает группу, где в качестве первых 11 переменных каждая категория. Я хочу запустить ANOVA, разделив данные на группы на основе значения 12-й переменной и запустив ANOVA для каждой переменной 2 - 11.

Как бы выделить данные в N группах на основе 12-й переменной и выполнить ANOVA для каждой переменной 2 - 11?

ответ

0

Читайте в файле:

CSV <- read.csv("data.csv", header=TRUE) 

Установить индекс для 12, верхняя граница, и нижняя граница для использования переборе категорий:

lenCSV <- 12 
upper <- 11 
lower <- 2 

Iter ел через категорию и вывод резюме:

for(j in lower:upper) { 
    fm <- as.formula(paste(names(CSV[j])," ~", names(lenCSV))) 

    fit<-aov(fm,data=CSV) 
    print(fit) 
} 
+0

Пожалуйста, добавьте некоторое объяснение в свой ответ. Кодовые ответы иногда достаточно хороши, но ответы на код + объясняются всегда лучше – Barranka

1

Я немного смущен относительно того, что вы подразумеваете под ANOVA для каждой переменной. Ниже приведен цикл, который проходит через каждое значение вашей 12-й переменной, подмножает данные и затем запускает ANOVA. Вам нужно изменить часть «y ~ x», так как я не знаю, какими будут ваши зависимые/независимые переменные. Если вы хотите запускать ANOVA для каждой переменной на переменную друг друга, вам может потребоваться другой цикл, который я пробовал ниже.

for(i in unique(CSV[,12])) { 
    data<-subset(CSV, subset=CSV[,12]==i) 
    fit <- aov(y ~ x, data=data) 
    fit 
} 

для каждой переменной

`%ni%`<-Negate(`%in%`) ##setting up 'not in' 

for(i in unique(CSV[,12])) { 
    data<-subset(CSV, subset=CSV[,12]==i) 

    for(j in 1:11) { 
     fm <- as.formula(paste(names(data[,j])," ~", paste(names(data)[names(data) %ni% names(data[,j])], collapse = "+"))) 

     fit<-aov(fm,data=data) 
     fit #you may want to output the results rather than printing them here 
    } 
} 
+0

Ошибка в lm.fit (х, у, смещение = смещение, singular.ok = singular.ok, ...): несовместимых размеры –

+0

выше, является ошибка, которую я получаю, когда запускаю код, в настоящее время отлаживая его. –

Смежные вопросы