Я пытаюсь найти простой способ выбора различных столбцов (db$Item1
, db$Item2
, db$Item3
, db$Item4
) из набора данных на основе условия (db$Scale
).Предпочтительно с помощью dplyr.Вот воспроизводимый пример.
Scale <- c(1, 1, 1, 2, 2, 3, 3)
Item1 <- c(4, 5, 4, 6, 7, 7, 6)
Item2 <- c(2, 3, 6, 3, 4, 5, 4)
Item3 <- c(6, 7, 3, 4, 5, 6, 5)
Item4 <- c(2, 5, 3, 5, 2, NA, NA)
db <- data.frame(Scale, Item1, Item2, Item3, Item4)
Краткое описание: у меня есть набор данных с тремя различными шкалами (1, 2 и 3), каждый из которых имеет разное количество элементов.Шкала 1 состоит из 4 элементов, шкала 2 состоит из 4 элементов, а шкала 3 состоит из 3 элементов.
# Scale Item1 Item2 Item3 Item4
#1 1 4 2 6 2
#2 1 5 3 7 5
#3 1 4 6 3 3
#4 2 6 3 4 5
#5 2 7 4 5 2
#6 3 7 5 6 NA
#7 3 6 4 5 NA
Что мне нужно сделать, это создать новый набор данных (скажем: db.X
), для которого у меня есть старый столбец Scale
(новое имя: Scale.X
), а затем новый столбец Item1.X
, состоящий из значений под столбцом Item 1
для шкал 1 и 2и значения в столбце Item 3
для шкалы 3. Кроме того, я хочу сообщить значения для db$Item3
в новом столбце Item2.X
# Scale.X Item1.X Item2.X
#1 1 4 6
#2 1 5 7
#3 1 4 3
#4 2 3 4
#5 2 4 5
#6 3 5 6
#7 3 4 5