首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用矩阵函数作为收集器

使用矩阵函数作为收集器
EN

Stack Overflow用户
提问于 2014-05-02 21:09:48
回答 1查看 45关注 0票数 0

我想使用矩阵作为CD的所有观察值的容器,从而在我对下面的数据帧的模拟中产生一个20乘3的矩阵;

代码语言:javascript
复制
Nsimdata=function(ns,tp,mu,sigma2){
   x1=rnorm(ns)
   x2=rnorm(ns)
   x3=rnorm(ns)
   U=c(x1,x2,x3)
   simdata=data.frame(CD=U,ID=1:ns,
                   Time=factor(rep(c(1,2,3),each=ns)),
                   treatment=sample(rep(c('Trt','placebo'),ns/2)))
   #ans[k,]=table(simdata$treatment)
   simdata
}

这就是我所做的

代码语言:javascript
复制
ns=20
nsim=2
tp=3
YK=matrix(0,nrow=ns,ncol=tp)
for(i in 1:nsim){
   DD=Nsimdata(ns,tp,mu,sigma2)
   for(j in 1:tp){
      Y=subset(DD,Time==j,select=c(CD))
      Y=Y$CD
      X=c(rep(0,ns/2),rep(1,ns/2))
   }
}

我想把我数据框中CD下的所有观测值都放到YK中。任何帮助我们都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2014-05-02 21:39:03

为什么不按照您希望数据结束的方式编写模拟函数呢?

代码语言:javascript
复制
# function to simulate the data
fnSimData = function(iSampleSize, iT, dMu = NULL, dSigma2 = NULL) {
  mU = matrix(rnorm(iSampleSize*3), ncol = 3, nrow = iSampleSize)
  simdata = data.frame(outcome.time = mU, 
                       idx = seq.int(iSampleSize),
                       treatment = sample(rep(c('Treatment','Placebo'), iSampleSize/2)))
  return(simdata)
} 

# parameters
iSampleSize = 20  # sample size
iNumSim = 2  # number of simulations
iT = 3  # number of time periods

# simulate the data
fnSimData(iSampleSize, iT, dMu, dSigma2)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23428969

复制
相关文章

相似问题

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