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

在R中为34例个体生成带个体间变异的NONMEM模拟采样时间

为NONMEM生成带个体间变异的采样时间(R实现)

当前代码仅生成一组固定的3个采样时间,重复34次后所有个体的采样时间完全一致,无法体现个体间变异。需要修改代码,让每个个体的3个采样时间分别在指定区间内独立随机生成,最终输出长度为102(3×34)的一维向量。

解决方案1:用replicate生成并展平

nsubjects <- 34

# 为每个个体独立生成3个采样时间,再合并为单个向量
times <- unlist(replicate(nsubjects, c(
  runif(1, 0.5, 1),   # 第一个采样时间:0.5-1小时
  runif(1, 12, 48),  # 第二个采样时间:12-48小时
  runif(1, 47, 49)   # 第三个采样时间:47-49小时
)))
  • replicate(nsubjects, ...)循环执行34次括号内的代码,每次为一个个体生成符合要求的3个随机时间
  • unlist()将34个长度为3的子向量展平为一个长度为102的一维向量,匹配NONMEM的数据格式需求

解决方案2:向量化生成后调整顺序

如果偏好更直接的向量化操作,可先分别生成每个区间的所有随机值,再调整为按个体连续排列的格式:

nsubjects <- 34

# 分别生成三个区间的随机数
time1 <- runif(nsubjects, 0.5, 1)
time2 <- runif(nsubjects, 12, 48)
time3 <- runif(nsubjects, 47, 49)

# 合并并调整为个体顺序连续的向量
times <- c(rbind(time1, time2, time3))
  • rbind(time1, time2, time3)生成3行34列的矩阵,每行对应一个采样区间
  • c()将矩阵按列展平,得到每个个体的三个采样时间连续排列的向量

验证结果

可通过以下代码确认输出符合要求:

# 检查向量长度是否为102
length(times)

# 查看前6个值(前两个个体的采样时间)
head(times, 6)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:40:12