首页 > 解决方案 > 从 R 创建一个由 0 和 1 组成的矩阵

问题描述

我想根据以下数据创建一个 0 和 1 的矩阵。

    id <-c(1,1,1,2,2,3)
    x<- c(5,7,8,2,6,5)
    data_toy <- data.frame(id,x)
   data_toy%>% count(id) 

> data_toy%>% count(id) 
  id n
1  1 3
2  2 2
3  3 1

所以根据数据,我需要创建一个 6X3 矩阵,其中第一列应该是 (1,1,1,0,0,0),第二列应该是 (0,0,0,1,1,0) 所以上。

你能提出什么建议吗?

谢谢

标签: rmatrix

解决方案


我们可以用model.matrixbase R

model.matrix(~ factor(id) - 1, data_toy)

-输出

#   factor(id)1 factor(id)2 factor(id)3
#1           1           0           0
#2           1           0           0
#3           1           0           0
#4           0           1           0
#5           0           1           0
#6           0           0           1

或使用table

with(data_toy, table(seq_along(id), id))

推荐阅读