R在向量重复函数中保持随机函数
Posted
技术标签:
【中文标题】R在向量重复函数中保持随机函数【英文标题】:R Keep random function in a vector repeating function 【发布时间】:2017-09-18 08:17:31 【问题描述】:我需要将 16 个数字的向量重复 100 次,其中一些数字是固定的,一些是在特定位置随机创建的。我创建了一个函数,但它重复了随机生成的第一个向量,甚至是随机数。但我需要函数样本在每个重复向量中工作,以获得所需位置的 100 个随机数的数组。
r1<- c(1,3,2,1,2,sample(1:4,1,replace=T),4,sample(1:4,1,replace=T),3,sample(1:4,1,replace=T),
sample(1:4,1,replace=T),2,sample(1:4,1,replace=T),1,sample(1:4,1,replace=T),3)
rep.row<-function(x,n)matrix(rep(r1,each=100),nrow=100)
rp <- rep.row(r1)
你能帮帮我吗?谢谢你,
【问题讨论】:
【参考方案1】:这行得通 - 它将NAs
放在您想要随机数的位置,然后在最后填充它们。
r2 <- c(1,3,2,1,2,NA,4,NA,3,NA,NA,2,NA,1,NA,3)
rep.row <- matrix(rep(r2,each=100),nrow=100)
rep.row <- apply(rep.row,c(1,2),function(x) ifelse(is.na(x),sample(1:4,1,replace=T),x))
【讨论】:
感谢您的回答,抱歉耽搁了,我真的很忙。问候,【参考方案2】:在您的代码中,您在开始时创建一次随机向量,然后将该(固定)向量复制 100 次。您需要做的是在每次迭代中重复随机抽样。你可以例如这样做使用:
## Function to create your random vector:
createVector <- function(ii)
r1 <- c(1, 3, 2, 1, 2,
sample(1:4, 1, replace = TRUE), 4,
sample(1:4, 1, replace = TRUE), 3,
sample(1:4, 1, replace = TRUE),
sample(1:4, 1, replace = TRUE), 2,
sample(1:4, 1, replace = TRUE), 1,
sample(1:4, 1, replace = TRUE), 3)
## Replicate 100 times:
set.seed(1234)
rp <- replicate(100, createVector())
head(rp)
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
# [1,] 1 3 2 1 2 1 4 3 3 3 3 2 4 1
# [2,] 1 3 2 1 2 1 4 1 3 3 3 2 3 1
# [3,] 1 3 2 1 2 2 4 4 3 2 4 2 2 1
# [4,] 1 3 2 1 2 1 4 1 3 2 2 2 1 1
# [5,] 1 3 2 1 2 1 4 4 3 3 4 2 4 1
# [6,] 1 3 2 1 2 2 4 2 3 2 3 2 1 1
# [,15] [,16]
# [1,] 3 3
# [2,] 3 3
# [3,] 2 3
# [4,] 1 3
# [5,] 1 3
# [6,] 4 3
【讨论】:
感谢您的回答,抱歉耽搁了,我真的很忙。问候,以上是关于R在向量重复函数中保持随机函数的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用random包生成随机数或者随机字符串实战:randomNumbers函数创建随机整数的数据集(包含重复项)randomSequence函数创建不含重复项的随机序列数据集创建随机字符串
[概率论与数理统计]笔记:3.3 随机向量的函数的分布与数学期望
R语言编写自定义函数计算分类模型评估指标:准确度特异度敏感度PPVNPV数据数据为模型预测后的混淆矩阵比较多个分类模型分类性能(逻辑回归决策树随机森林支持向量机)