Для каждого из 100 наборов данных я использую lm()
для генерации 7 различных уравнений и хотел бы извлечь и сравнить p-значения и скорректированные значения R-квадрата.
Предположим, что lm()
на самом деле является наилучшей техникой регрессии, возможной для этого сценария.
При поиске в Интернете я нашел несколько полезных примеров того, как создать функцию, которая будет извлекать эту информацию и записывать ее в другом месте, однако мой код использует paste()
для обозначения каждой функции источником данных. и я не могу понять, как включить эти уникальные вставленные имена в создаваемую мной функцию.
Вот мини-пример:
temp <- data.frame(labels=rep(1:10),LogPre= rnorm(10))
temp$labels2<-temp$labels^2
testrun<-c("XX")
for (i in testrun)
{
assign(paste(i,"test",sep=""),lm(temp$LogPre~temp$labels))
assign(paste(i,"test2",sep=""),lm(temp$LogPre~temp$labels2))
}
Затем я хотел бы извлечь коэффициенты для каждого уравнения
Но следующее не работает:
summary(paste(i,"test",sep="")$coefficients)
и это тоже:
coef(summary(paste(i,"test",sep="")))
Оба генерируют ошибку: оператор $ недопустим для атомарных векторов
ДАЖЕ ЧЕРЕЗ
summary(XXtest)$coefficients
и
coef(summary(XXtest))
отлично работает.
Как я могу использовать paste()
в summary()
, чтобы позволить мне сделать это для AAtest, AAtest2, ABtest, ABtest2 и т. Д.
Спасибо!