Лучший способ составить формулу с неопределенным количеством переменных - PullRequest
1 голос
/ 20 октября 2011

У меня много данных.Я хотел бы сделать формулу для использования в glm

Данные в векторе, как это:

{a1, a2, b1, b2, ...}

и я хотел бы составить формулу, подобную этой:

Идентичность ~ a1: a2 + b1: b2 + ...

какие-нибудь предложения для чего-то быстрого и простого?

1 Ответ

7 голосов
/ 20 октября 2011

Я не уверен, что понимаю ваш вопрос. Предоставление примеров данных будет проще. Является ли следующее похожим на то, что вы ищете?

## Create example data
variables <- c("a1", "a2", "b1", "b2", "c1", "c2")
dat <- data.frame(matrix(rnorm(70), ncol = 7))
names(dat) <- c("Identity", variables)

## Create formula
formula <- paste(variables[grep("1$", variables)], variables[grep("2$", variables)], sep = ":", collapse = " + ")
formula <- paste("Identity ~ ", formula, sep = "")

## Run model
glm1 <- glm(formula = formula, data = dat)
summary(glm1)

Выше формула создается с помощью paste(), а аргументы sep и collapse используются для объединения всего с соответствующими : и +.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...