Применяют LM для подмножества кадра данных, определенные третьим столбцом кадра

У меня есть кадр данных, содержащий вектор значений X, векторных значений Y и вектору IDS:

x <- rep(0:3, 3)
y <- runif(12)
ID <- c(rep("a", 4), rep("b", 4), rep("c", 4))
df <- data.frame(ID=ID, x=x, y=y)

Я хотел бы создать отдельный LM для Подмножество X's и Y поделиться одним и тем же идентификатором. Следующий код получает выполнение задания:

a.lm <- lm(x~y, data=subset(df, ID=="a"))
b.lm <- lm(x~y, data=subset(df, ID=="b"))
c.lm <- lm(x~y, data=subset(df, ID=="c"))

, за исключением того, что это очень хрупкие (будущие наборы данных могут иметь разные идентификаторы) и без вектора. Я также хотел бы хранить все LMS в одной структуре данных. Должен быть элегантный способ сделать это, но я не могу его найти. Любая помощь?

6
задан Marek 14 September 2011 в 19:11
поделиться