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

如何在R中创建元素为数组/列表的矩阵?医院排班模拟可行吗?

在R语言中创建存储列表/数组的矩阵模拟医院排班表

当然没问题!在R语言里完全支持创建每个元素为列表(或数组)的矩阵,用来模拟医院排班表存储患者信息完全可行,你的思路(先建初始矩阵再循环填充)也完全走得通。下面给你详细拆解实现步骤:

1. 创建22×7的初始列表矩阵

首先要明确:普通的matrix()函数默认创建的是数值型/字符型等原子向量的矩阵,无法直接存储列表。我们需要先生成一个包含空列表的向量,再将其转换为矩阵:

# 创建22行7列的列表矩阵,初始每个元素为空列表
schedule_matrix <- matrix(vector("list", 22 * 7), nrow = 22, ncol = 7)

你可以验证一下元素类型:

# 检查第一个元素的类型,会返回"list"
class(schedule_matrix[[1,1]])

如果需要初始值为0(比如标记无患者的状态),也可以把空列表换成初始值为0的列表:

# 初始每个元素是包含0的列表
schedule_matrix <- matrix(lapply(1:(22*7), function(x) list(0)), nrow=22, ncol=7)

2. 通过循环向矩阵元素添加患者信息

接下来就可以用循环给每个位置的列表添加患者信息了。假设患者信息是结构化的列表(比如包含姓名、年龄、病症等),我们可以用嵌套循环遍历每个排班时段,填充数据:

# 模拟一批患者信息样本
sample_patients <- list(
  list(name = "张三", age = 35, disease = "上呼吸道感染", note = "需复查"),
  list(name = "李四", age = 52, disease = "高血压随访"),
  list(name = "王五", age = 28, disease = "常规体检")
)

# 嵌套循环填充排班表(这里随机模拟填充逻辑,你可以替换成实际业务逻辑)
set.seed(123) # 固定随机种子,方便复现结果
for (row in 1:nrow(schedule_matrix)) {
  for (col in 1:ncol(schedule_matrix)) {
    # 随机决定当前时段的患者数量(0-2人)
    patient_count <- sample(0:2, 1)
    if (patient_count > 0) {
      # 从样本中随机选取对应数量的患者,赋值给当前矩阵位置
      schedule_matrix[[row, col]] <- sample(sample_patients, patient_count)
    } else {
      # 无患者时可以保留初始值或设为空列表
      schedule_matrix[[row, col]] <- list(no_patient = TRUE)
    }
  }
}

注意:访问列表矩阵的单个元素时,一定要用双括号[[row, col]],而不是单括号[row, col]——单括号返回的是一个子矩阵(仍然是列表矩阵类型),双括号才会直接取出该位置的列表元素。

如果需要给已有患者的时段追加新患者,可以这样写:

# 模拟一个新患者
new_patient <- list(name = "赵六", age = 41, disease = "糖尿病复诊")

# 给第5行第3列的时段追加新患者
schedule_matrix[[5, 3]] <- c(schedule_matrix[[5, 3]], list(new_patient))

3. 访问和管理患者信息

填充完成后,你可以轻松查看任意时段的患者信息:

# 查看第3行第2列(假设第2列是周二,第3行是上午第三个时段)的患者
schedule_matrix[[3, 2]]

# 提取该时段第一个患者的姓名
schedule_matrix[[3, 2]][[1]]$name

# 统计某一列(比如周日,第7列)所有时段的患者总数
sum(sapply(schedule_matrix[,7], function(x) length(x)))

额外小提示

如果你的患者信息结构非常规整(每个患者的字段完全一致),也可以考虑用三维数组来存储(维度为:时段数×星期数×患者字段数),但列表矩阵的灵活性更高——适合处理字段不统一的情况(比如有的患者有特殊备注,有的没有)。

内容的提问来源于stack exchange,提问作者Rita Gonçalves

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:14:16