首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >随机采样两个向量,找出样本的均值,然后在R中生成矩阵?

随机采样两个向量,找出样本的均值,然后在R中生成矩阵?
EN

Stack Overflow用户
提问于 2012-06-05 02:09:34
回答 1查看 858关注 0票数 1

耽误您时间,实在对不起!

我的数据框架很简单。两列:第一列有基因型(1-39),第二列有性状值(数值,连续)。我想选择8个基因型,并计算相关性状值的平均值和stdev值。

最后,我想对8种基因型进行10,000次的抽样,而对于每一个样本,我希望得到相关性状值的stdev和平均值。理想的情况是,在矩阵中,每一行代表一个样本,每种基因型代表8列,对于stdev和与这些基因型关联的特征值的平均值,有两个最终列。这也可能是另一种方式。

  1. 如何从数据框架中的两个不同列中进行采样,以便在新示例中显示这两个值?即基因型和性状值的平均值和stdev计算的
  2. ,如何像我前面描述的那样将这个样本放入一个矩阵?
  3. ,如何重复这个过程10,000次?

再次感谢!

EN

回答 1

Stack Overflow用户

发布于 2012-06-05 02:46:19

这将返回8个性状随机抽样的所有基因型行的单个样本:

代码语言:javascript
运行
复制
dat[ dat$genotype %in% sample(1:39, 8), ]

replicate函数被设计为重复随机过程。从两个基因型的样本中重复3次获得“特质”sd:

代码语言:javascript
运行
复制
dat <- data.frame(genotype=sample(1:5, 25,replace=TRUE), trait=rnorm(25) )
replicate ( 3, sd(dat[ dat$genotype %in% sample(1:5, 2), "trait" ]) )
[1] 0.7231686 0.9225318 0.9225318

它用方法和sd值记录示例sd:

代码语言:javascript
运行
复制
replicate ( 3, {c( samps =sample(1:5, 2), 
                   sds=sd(dat[ dat$genotype %in% samps, "trait" ]) ,
                   means = mean(dat[ dat$genotype %in% samps, "trait" ]) )} )
            [,1]      [,2]      [,3]
samps1 1.0000000 1.0000000 5.0000000
samps2 5.0000000 3.0000000 1.0000000
sds    0.8673977 0.8673977 0.8673977
means  0.2835325 0.2835325 0.2835325
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10890688

复制
相关文章

相似问题

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