У меня есть фрейм данных с результатами опроса.Результаты хранятся в вертикальном формате.Фрейм данных выглядит следующим образом -
set.seed(1000)
df = data.frame(RESP_ID=c(rep(1,6),rep(2,8),rep(3,9),rep(4,5),rep(5,4),rep(6,10),rep(7,4),rep(8,8),rep(9,8),rep(10,10)),
CLIENT=c(rep("A",6),rep("A",8),rep("A",9),rep("A",5),rep("A",4),rep("B",10),rep("B",4),rep("B",8),rep("B",8),rep("B",10)),
QST=c(paste0("Q",c(1:6)),paste0("Q",c(1:8)),paste0("Q",c(1:9)),paste0("Q",c(1:5)),paste0("Q",c(1:4)),paste0("Q",c(1:10)),paste0("Q",c(1:4)),paste0("Q",c(1:8)),paste0("Q",c(1:8)),paste0("Q",c(1:10))),
VALUE=round(runif(72,1,4),0))
Описание кадра данных
RESP_ID = ID респондента.Каждое удостоверение личности соответствует одному респонденту.В этом примере данных у нас есть 10 респондентов.
CLIENT = Соответствует имени клиента, респонденты которого были опрошены.В этом образце данных у нас есть два клиента (A & B).
QST = Соответствует номеру вопроса в опросе.
VALUE = Соответствует варианту ответа на вопрос.На все вопросы есть 4 варианта ответа (от 1 до 4).
Цель
Для каждой комбинации клиента и вопроса я хотел бы создать отдельный столбец, в котором будут хранитьсякоэффициент регрессии для этого вопроса регрессировал до Q2 в столбце QST
.
Таким образом, в регрессионной модели Q2
является зависимой переменной, а все остальные вопросы являются независимыми переменными.
Моя попытка
Моя попытка не дает желаемого результата.
slopesdf = df %>%
spread(QST, VALUE, fill = 0) %>%
group_by(CLIENT) %>%
mutate(COEFFICIENT=lm(Q2 ~ .))
Я пытаюсь сгруппировать CLIENT
& QST
и затем найдите наклоны для каждого вопроса, регрессированного с помощью Q2.Я уверен, что есть лучший способ сделать это.
В настоящее время моя попытка выдает мне следующее сообщение об ошибке -
Ошибка в mutate_impl (.data, dots): Ошибка оценки: '.'dans la formule и pas d'argument 'data'
Желаемый вывод
Я хотел бы, чтобы окончательный кадр данных содержал три столбца: один для CLIENT
, один для QST
и третий для COEFFICIENT
с коэффициентами для каждой комбинации CLIENT и QST, регрессированными с Q2 в качестве переменной отклика.
Любая помощь по этому вопросу будет принята с благодарностью.