【发布时间】:2019-03-21 19:03:32
【问题描述】:
我试图找到一种简单的方法来根据条件 (db$Scale) 从数据集中选择不同的列 (db$Item1、db$Item2、db$Item3、db$Item4)。最好使用 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。此外,我想在新列 Item2.X 下报告 db$Item3 的值
# 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
【问题讨论】:
-
您说:Item1.X 由 Item 1 列下的值组成,用于刻度 1 和 2。这不是最终输出中应显示的内容