全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3525 8
2019-03-12
da<-list()
for(i in 1:100){
set.seed(i)#循环时出现问题,种子数R给默认为100,无法从1开始循环到100,导致最终100个数据集X,T变量都是一样的数值#
N<-200#每个数据集中样本量为200#
x<-mvrnorm(N,mu=rep(0,10),Sigma=diag(10))#产生10个协变量Xi#
t1<- 0.2*x[,1]+x[,2]+2*x[,3]+3*x[,4]-2*x[,5]-0.5*x[,6]+rnorm(N,sd=1)#固定变量T与Xi的函数关系式#
prop <- 1/(1+exp(-t1-0.1*x[,3]-0.3*x[,4]+0.2*x[,5]-0.3*x[,7]))#结局变量Y属于二分类变量#
y1<- rbinom(N,1,prop)
data<-data.frame(y1,t1,x[,1],x[,2],x[,3],x[,4],x[,5],x[,6],x[,7],x[,8],x[,9],x[,10])
da[[i]]<-data
}

我想模拟产生100个数据集,每个数据集中包含Y,T,X1-X10这几个变量,以上程序最终的确产生了100个数据集,但是100个数据集中T变量的数值全部相同,想请问大家,程序问题出现在哪里,该如何改正才能产生100个数值不同的数据集??

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-3-12 11:31:07
set.seed(...) 一般只需要在程序开头设置吧。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-3-12 11:41:53
hyu9910 发表于 2019-3-12 11:31
set.seed(...) 一般只需要在程序开头设置吧。
嗯嗯,请问,如果放在开头,产生的数据集也是相同的呀,该怎么更改才能产生100个不同的数据集呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-3-12 11:44:32
孙QQ 发表于 2019-3-12 11:41
嗯嗯,请问,如果放在开头,产生的数据集也是相同的呀,该怎么更改才能产生100个不同的数据集呢?
那么就不是set.seed的问题。 不知道你的T数据是啥。 你或者去掉set.seed(用默认),去掉循环,重复两遍得到数据T_no1和T_no2,看看结果。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-3-12 12:04:41
hyu9910 发表于 2019-3-12 11:44
那么就不是set.seed的问题。 不知道你的T数据是啥。 你或者去掉set.seed(用默认),去掉循环,重复两遍得 ...
刚才按照你所说的运行了一下,去掉了循环,去掉了种子,t运行了两遍,两个数据集中t1值发生了变化,并不相同。
于是,我再次加上了循环,但这次循环中去掉了种子,运行了一下,100个数据集中的t1值依然相同,是否是循环中存在问题,可是的的确确产生了100个数据集,为何每个数据集中的变量t1的值都相同呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-3-12 12:33:16
孙QQ 发表于 2019-3-12 12:04
刚才按照你所说的运行了一下,去掉了循环,去掉了种子,t运行了两遍,两个数据集中t1值发生了变化,并不相 ...
你不循环的时候,有T1和T2进行比较。 但是在循环中,你可能需要把得到的T数据赋值存放到一个变量中;这个操作可能有错吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群