У меня есть два файла данных, состоящие из 8 строк, 2151 столбца. Я хочу сделать регрессию между каждым файлом, для каждого столбца и вывести значения наклона, точки пересечения и r-квадрата. Пример: выполните регрессию столбца 1 файла 1 (все 8 строк) и столбца 1 файла 2 (все 8 строк), возьмите три интересующих значения (отрезок, наклон, rsquared) и перейдите к следующему набору столбцов для оба файла.
@thelatemail дал мне огромный кусок кода, который делает почти все.
mapply(function(x,y) coef(lm(y~x)), input1, input2
Я надеялся немного изменить это, чтобы я мог извлечь значения R2 из линейной модели. Поэтому я написал быструю функцию, чтобы посмотреть, смогу ли я повторить успех и двигаться дальше.
linear_calibration <- function(x,y) {
co_values <- coef(lm(y~x))
return(co_values)
}
test_output = mapply(linear_calibration(input1, input2))
write.table(test_output,file="dump.csv",sep=",")
К сожалению, когда я пишу это таким образом, я получаю сообщение об ошибке:
Error in model.frame.default(formula = y ~ x, drop.unused.levels = TRUE) :
invalid type (list) for variable 'y'
Я не совсем уверен, почему я получаю сообщение об ошибке, когда пишу это таким образом. Я что-то неправильно понимаю. Для меня длинная форма того, что я написал, кажется идентичной оригинальной одной строке. Но это не так, поэтому я пытаюсь понять, как изменить код, чтобы он работал.
rbind
от объединения столбцов? Кроме того, было бы очень полезно опубликовать воспроизводимый пример с кодами - см. [ссылка] (stackoverflow.com/questions/5963269/) для более подробной информации. - person John_dydx   schedule 19.05.2014merge
Думаю, это правильный шаг, но вам нужно будет привести пример, чтобы мы могли вам помочь. - person Hugh   schedule 19.05.2014