You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何基于分组id数据生成指定结构的0-1矩阵

R生成指定0-1矩阵的实现方法

你需要的本质是对id列生成独热编码矩阵,每列对应一个id取值,对应行的id匹配时取值为1,其余为0,可通过以下几种常用方案实现:

  • 方案1:纯基础R实现,无需加载额外包
# 示例数据构造
id <-c(1,1,1,2,2,3)
x <- c(5,7,8,2,6,5)
data_toy <- data.frame(id,x)

# 生成目标矩阵
res_mat <- as.matrix(table(seq(nrow(data_toy)), data_toy$id))

运行后输出的res_mat即为你需要的6行3列0-1矩阵,若不需要默认列名可执行colnames(res_mat) <- NULL清除。

  • 方案2:tidyverse生态实现,适配已有dplyr、tidyr使用习惯的场景
library(tidyverse)

res_mat <- data_toy %>%
  mutate(obs_num = row_number(), flag = 1) %>%
  pivot_wider(names_from = id, values_from = flag, values_fill = 0) %>%
  select(`1`, `2`, `3`) %>%
  as.matrix()
  • 方案3:使用独热编码专用包快速生成
# 首次使用需先安装:install.packages("fastDummies")
library(fastDummies)

res_mat <- dummy_cols(data_toy, select_columns = "id", remove_first_dummy = F, remove_selected_columns = T) %>%
  as.matrix()

内容的提问来源于stack exchange,提问作者student_R123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 14:45:02