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

R语言:如何在随机分布数据集中随机选取个体设置为感染状态?

解决随机标记感染个体的问题

首先得说清楚你之前的for循环为啥出错:你写的循环逻辑走偏啦,infectionstatus一开始全是0,用它当索引的话会指向位置0,但R里的向量/数据框索引是从1开始的,这就触发了那个"attempt to select less than one element"的错误,而且这个循环本身也不是用来随机选个体的逻辑。

下面给你两种简单直接的正确做法,都不用写for循环:

  • 方法一:随机选行索引赋值
    先随机生成一个1到60之间的整数(对应数据框的行号),然后把该行的infectionstatus设为1:
# 随机抽取一个行号
random_idx <- sample(1:nrow(df2), 1)
# 标记为感染状态
df2$infectionstatus[random_idx] <- 1
  • 方法二:直接操作状态向量
    也可以直接对infectionstatus向量随机选一个位置修改:
# 随机选一个位置设为1
df2$infectionstatus[sample(length(df2$infectionstatus), 1)] <- 1

如果之后需要标记多个感染个体,只需要把sample的第二个参数改成你想要的数量就行,比如标记3个的话就是sample(1:nrow(df2), 3)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 17:07:35