首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中引导两个数据集

在R中引导两个数据集
EN

Stack Overflow用户
提问于 2013-09-20 07:28:13
回答 1查看 425关注 0票数 0

我有两个数据格式如下:

代码语言:javascript
运行
复制
 seed(1) 
 X <- data.frame(matrix(rnorm(2000), nrow=10))

其中行代表基因,列代表基因型。

对于每一轮的引导(n=1000),应随机选择基因型而不替换此数据集(X),并形成两组数据集(X'应有5种基因型,Y'应有5种基因型)。基本上,最后我将拥有1000个这样的数据集-- X'Y',它们将包含来自完整表达式数据集的5个随机基因型。

我试过使用replicateapply,但没有起作用。

代码语言:javascript
运行
复制
B <- 1000
replicate(B, apply(X, 2, sample, replace = FALSE))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-20 07:44:51

我认为,您最好先选择列号,从200中选择10,而不替换(每X‘和Y’5):

代码语言:javascript
运行
复制
colnums_boot <- replicate(1000,sample.int(200,10))

从那里开始,当您计算每个迭代时,我从1到1000,您可以抓取

代码语言:javascript
运行
复制
Xprime <- X[,colnums_boot[1:5,i]]
Yprime <- X[,colnums_boot[6:10,i]]

这就避免了制作三维array ( matrix在R中的推广).

此外,如果速度是一个考虑,我认为它会更快离开X作为一个矩阵,而不是一个数据框架。也许其他人可以对此发表评论。

编辑:下面是一种预先抓取它们的方法(在一对三维数组中):

代码语言:javascript
运行
复制
Z <- as.matrix(X)
Xprimes <- array(,dim=c(10,5,1000))
Xprimes[] <- Z[,colnums_boot[1:5,]]

Yprimes <- array(,dim=c(10,5,1000))
Yprimes[] <- Z[,colnums_boot[6:10,]]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18911185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档