我在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?
答案 0 :(得分:0)
这是一个双向列联表。
您首先需要将数据从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