Я попытался применить этот QA: «эффективная циклическая логистическая регрессия в R» к моей собственной проблеме, но я не могу заставить ее работать. Я не пробовал использовать apply, но несколько человек сказали мне, что цикл for здесь лучший (если кто-то считает иначе, не стесняйтесь объяснять!) Я думаю, что эта проблема довольно обобщаема и не слишком эзотерична для Форум.
Вот чего я хочу достичь: у меня есть набор данных с 3 переменными-предикторами (пол, возраст, раса) и зависимой переменной (пропорцией) для 86 генетических позиций для нескольких человек. Я хочу запустить двумерную линейную регрессию для каждой позиции (то есть 86 линейных регрессий для 3 переменных-предикторов). Затем я хочу вывести результаты в удобочитаемом формате; Моя идея - матрица, в которой строки = пол, возраст и раса, а столбцы = 86 позиций. Для каждой комбинации строка * столбец будет значение p. Затем я мог бы назвать значения p <0,1 (или любой другой порог, который я хочу), чтобы легко увидеть, какие предикторы существенно связаны с пропорцией в каждой позиции.
Это код, который у меня есть.
BB <- seq.csv[,6:91] #the data frame containing the 86 positions
AA <- seq.csv[,2:4] #the data frame containing the 3 predictor variables
linreg <- matrix(NA,3,86) #make a results vector and fill it with NA
for (i in 1:86) #loop over each position variable
{
for (j in 1:3) #for each position variable, loop over each predictor
{
linreg[i,j] <- lm(BB[,i]~AA[,j]) #bivariate linear regression
}}
Независимо от того, как я это изменяю (например, упрощая его, чтобы перебирать позиции только для одного предиктора), я все равно получаю сообщение об ошибке, что мои матрицы не одинаковой длины (количество заменяемых элементов не кратно длине замены) . Фактически, длина (линрег) = 286 (3 * 86), длина (BB) = 86 и длина (AA) = 3. Я знаю, что последние два являются фреймами данных, а не матрицами ... но если я конвертирую их в матрицы, я получаю ошибку недопустимого типа (недопустимый тип (список) для переменной 'BB [, i]'). Я не знаю, как исправить эту ошибку, потому что я просто недостаточно хорошо понимаю R ... Я проконсультировался с книгами Прикладная статистическая генетика с R и Искусство программирования на R em> безрезультатно, и я весь день искал в Google. А я еще даже не дошел до кодировки вывода результатов ...
Я был бы признателен за любые советы по отладке или некоторые предложения по лучшему способу кодирования этого! Спасибо всем заранее.
dput( head( BB[,6:10] ) )
иdput( head( AA ) )
. - person Simon O'Hanlon   schedule 09.03.2013