我想根据以下数据创建一个由 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
Run Code Online (Sandbox Code Playgroud)
所以根据数据,我需要创建一个 6X3 矩阵,其中第一列应该是 (1,1,1,0,0,0),第二列应该是 (0,0,0,1,1,0) 所以在。
你能建议什么来做到这一点吗?
谢谢
我们可以model.matrix在base R
model.matrix(~ factor(id) - 1, data_toy)
Run Code Online (Sandbox Code Playgroud)
-输出
# 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
Run Code Online (Sandbox Code Playgroud)
或使用 table
with(data_toy, table(seq_along(id), id))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |