Я надеюсь, что мой вопрос не является дубликатом, но я действительно не мог найти то, что мне нужно. Я нырнул в dplyr и даже прошел курс data.table из DataCamp, но не могу это исправить. Может быть, что-то с видом?
У меня есть этот df:
set.seed(1964)
df<-data.frame(id = c( "XEY", "NZH", "DYE", "JNF", "LHH", "WNB"),
q_1 = sample(5,6, replace = TRUE),
q_2 = sample(5,6, replace = TRUE),
q_3 = sample(5,6, replace = TRUE),
q_4 = sample(5,6, replace = TRUE),
q_5 = sample(5,6, replace = TRUE))
Так что мой df выглядит так:
Далее у меня есть два вектора с id (строки-индикаторы) и q (номера вопроса), подобные этим:
id <- c("XEY", "DYE", "JNF", "DYE", "XEY", "LHH", "WNB", "JNF" )
question <- c("val_1", "val_1","val_3","val_3","val_3", "val_4", "val_4", "val_5")
Я хочу извлечь значения из df, используя два вектора, чтобы получить вывод, подобный этому:
Я много чего пробовал, чтобы извлечь значения, но продолжаю получать ошибки. Я пробовал такие вещи, как:
df[id == (id[1]), (question[1])]
df[id == id[1], question[1]]
Странно то, что пакет data.table, похоже, принимает 'запись строки'. Потому что:
df[id == (id[1]),]
возвращает значение a для строки "XEY":
id q_1 q_2 q_3 q_4 q_5
1: XEY 5 1 5 4 1
Но как сделать трюк для правильного обозначения столбца, используя мой вектор?
Извините за этот очень простой вопрос, спасибо за помощь.