如何将数据集表转换为R中的矩阵

时间:2019-04-18 10:37:48

标签: r datatable transform

我有一个像这样的数据集

df <- data.frame("col1" = c("a", "b", "a", "c", "d", "e", "f", "c"), "col2" = c("v2", "v2", "v2", "v3", "v4", "v1", "v2", "v4"), "index" = c(3,1,3,0,1,2,3,0))

我希望得到一个像这样的矩阵:

  v1 v2 v2 v3 v4
a 0  3  3  0  0
b 0  1  0  0  0
c 0  0  0  0  0
d 0  0  0  0  1
e 2  0  0  0  0
f 0  3  0  0  0

非常感谢您的回答!

2 个答案:

答案 0 :(得分:2)

您的组中没有唯一的标识符,并且重复了值(V2)。我们可以将complete col1col2值和fill index设为0。为每个组(col1)创建一个唯一标识符,然后{ {1}}值。

spread

答案 1 :(得分:0)

我们可以在base R

中轻松完成此操作
xtabs(index ~ col1 + col2, unique(df))
#  col2
#col1 v1 v2 v3 v4
#   a  0  3  0  0
#   b  0  1  0  0
#   c  0  0  0  0
#   d  0  0  0  1
#   e  2  0  0  0
#   f  0  3  0  0

注意:未加载软件包