Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 列表到矩阵中_R_Excel_Matrix - Fatal编程技术网

R 列表到矩阵中

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

我在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