R 列表到矩阵中
我在excel表格中有一些数据,如下所示:R 列表到矩阵中,r,excel,matrix,R,Excel,Matrix,我在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
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