我有一个像这样的数据集
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
非常感谢您的回答!
答案 0 :(得分:2)
您的组中没有唯一的标识符,并且重复了值(V2
)。我们可以将complete
col1
和col2
值和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
注意:未加载软件包