我在 excel 表中有一些数据,如下所示:
User | Query
u1 | q3
u2 | q7
u2 | q7
u3 | q1
u3 | q10
u3 | q8
u4 | q9
u4 | q2
现在我想将这些数据覆盖到矩阵中,例如:
q1 q2 q3 q7 q8 q9 q10
u1 0 0 1 0 0 0 0
u2 0 0 0 2 0 0 0
u3 1 0 0 0 1 0 1
u4 0 1 0 0 0 1 0
我不知道这种矩阵的名称是什么,但我想用这个矩阵制作图表。那么有没有办法使用“R”或“excel”从上面提到的列表中获取矩阵?
最佳答案
这是一个双向列联表。
您首先需要将您的数据作为数据框从 excel 工作表中读入 R。您可以使用 read.csv
或 read.table
,但是由于您没有提供工作表样本,因此我无法为此生成确切的代码。
现在,假设数据框是 d
,那么我们可以做
xtabs(~ User + Query, d)
# Query
#User q1 q10 q2 q3 q7 q8 q9
# u1 0 0 0 1 0 0 0
# u2 0 0 0 0 2 0 0
# u3 1 1 0 0 0 1 0
# u4 0 0 1 0 0 0 1
或者
table(d[[1]], d[[2]])
# q1 q10 q2 q3 q7 q8 q9
# u1 0 0 0 1 0 0 0
# u2 0 0 0 0 2 0 0
# u3 1 1 0 0 0 1 0
# u4 0 0 1 0 0 0 1
关于r - 列表成矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41311704/