楼主: 孙QQ
3596 8

[程序分享] R语言For循环求助 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

高中生

37%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
62 点
帖子
6
精华
0
在线时间
48 小时
注册时间
2018-5-18
最后登录
2021-12-5

楼主
孙QQ 发表于 2019-3-12 11:22:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
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个数值不同的数据集??

二维码

扫码加我 拉你入群

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

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

关键词:for循环 For R语言 R;FOR循环

沙发
hyu9910 在职认证  发表于 2019-3-12 11:31:07
set.seed(...) 一般只需要在程序开头设置吧。
已有 1 人评分学术水平 收起 理由
yahoocom + 1 鼓励积极发帖讨论

总评分: 学术水平 + 1   查看全部评分

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

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

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

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

7
孙QQ 发表于 2019-3-12 16:08:56
hyu9910 发表于 2019-3-12 12:33
你不循环的时候,有T1和T2进行比较。 但是在循环中,你可能需要把得到的T数据赋值存放到一个变量中;这个 ...
请问如何改正才能产生100个不同的数据集呢?

8
孙QQ 发表于 2019-3-12 16:09:01
hyu9910 发表于 2019-3-12 12:33
你不循环的时候,有T1和T2进行比较。 但是在循环中,你可能需要把得到的T数据赋值存放到一个变量中;这个 ...
请问如何改正才能产生100个不同的数据集呢?

9
hyu9910 在职认证  发表于 2019-3-12 21:00:15
孙QQ 发表于 2019-3-12 16:09
请问如何改正才能产生100个不同的数据集呢?
da[]<-data
我觉得你写得很奇怪。 按照我的做法,我会尝试定义矩阵da,100行,其每行装一个循环的结果数据。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 11:00