假设您有一个宽数据集,要求某人对相同属性的各种产品进行评级。
id
代表给定的个人
X1
代表该人被要求评价的各种产品。
eq_
和rate_
代表他们要求评分的各种属性。例如,eq_1
是一个属性,rate_2
是另一个属性,依此类推。
id X1.eq_1 X1.eq_2 X2.eq_1 X2.eq_2 X3.eq_1 X3.eq_2 X1.rate_1 X1.rate_2 X2.rate_1 X2.rate_2 X3.rate_1 X3.rate_2
1 1 2 5 2 1 2 1 5 2 1 2 2 3
2 2 1 1 2 3 3 3 1 4 4 1 3 3
3 3 5 3 2 2 5 3 3 5 1 1 2 5
4 4 3 2 4 4 3 1 3 5 5 1 2 5
5 5 2 3 1 5 4 3 5 5 1 5 2 4
6 6 3 5 4 5 1 4 4 5 4 4 3 5
7 7 5 5 4 1 5 1 2 4 5 3 2 2
8 8 4 4 2 4 1 2 4 4 5 4 3 4
9 9 4 5 3 1 2 1 4 4 3 5 4 4
10 10 5 4 1 4 1 4 1 3 5 2 1 3
最终我想结束这样的事情 - 请注意我删除了数据,因为我不相信我可以让结果看起来正确。
id product eq_1 eq_2 rate_1 rate_2
1 1 (data) (data) (data) (data)
2 1 (data) (data) (data) (data)
3 1 (data) (data) (data) (data)
4 1 (data) (data) (data) (data)
5 1 (data) (data) (data) (data)
6 1 (data) (data) (data) (data)
7 1 (data) (data) (data) (data)
8 1 (data) (data) (data) (data)
9 1 (data) (data) (data) (data)
10 1 (data) (data) (data) (data)
1 2 (data) (data) (data) (data)
2 2 (data) (data) (data) (data)
3 2 (data) (data) (data) (data)
4 2 (data) (data) (data) (data)
5 2 (data) (data) (data) (data)
6 2 (data) (data) (data) (data)
7 2 (data) (data) (data) (data)
8 2 (data) (data) (data) (data)
9 2 (data) (data) (data) (data)
10 2 (data) (data) (data) (data)
以下是数据的dput
:
structure(list(id = 1:10, X1.eq_1 = c(2L, 1L, 5L, 3L, 2L, 3L,
5L, 4L, 4L, 5L), X1.eq_2 = c(5L, 1L, 3L, 2L, 3L, 5L, 5L, 4L,
5L, 4L), X2.eq_1 = c(2L, 2L, 2L, 4L, 1L, 4L, 4L, 2L, 3L, 1L),
X2.eq_2 = c(1L, 3L, 2L, 4L, 5L, 5L, 1L, 4L, 1L, 4L), X3.eq_1 = c(2L,
3L, 5L, 3L, 4L, 1L, 5L, 1L, 2L, 1L), X3.eq_2 = c(1L, 3L,
3L, 1L, 3L, 4L, 1L, 2L, 1L, 4L), X1.rate_1 = c(5L, 1L, 3L,
3L, 5L, 4L, 2L, 4L, 4L, 1L), X1.rate_2 = c(2L, 4L, 5L, 5L,
5L, 5L, 4L, 4L, 4L, 3L), X2.rate_1 = c(1L, 4L, 1L, 5L, 1L,
4L, 5L, 5L, 3L, 5L), X2.rate_2 = c(2L, 1L, 1L, 1L, 5L, 4L,
3L, 4L, 5L, 2L), X3.rate_1 = c(2L, 3L, 2L, 2L, 2L, 3L, 2L,
3L, 4L, 1L), X3.rate_2 = c(3L, 3L, 5L, 5L, 4L, 5L, 2L, 4L,
4L, 3L)), .Names = c("id", "X1.eq_1", "X1.eq_2", "X2.eq_1",
"X2.eq_2", "X3.eq_1", "X3.eq_2", "X1.rate_1", "X1.rate_2", "X2.rate_1",
"X2.rate_2", "X3.rate_1", "X3.rate_2"), class = "data.frame", row.names = c(NA,
-10L))
编辑:任何潜在的副本都没有回答这个问题,因为所有重复项都使用硬编码来表示变量名称。必须有一种自动化方法吗?我的数据集有100多个变量,所以我无法对所有这些变量进行硬编码。