楼主: qian32167
11060 11

[问答] R循环嵌套求助 [推广有奖]

  • 0关注
  • 1粉丝

已卖:728份资源

高中生

67%

还不是VIP/贵宾

-

威望
0
论坛币
2133 个
通用积分
25.5375
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
737 点
帖子
31
精华
0
在线时间
35 小时
注册时间
2012-6-6
最后登录
2023-10-31

楼主
qian32167 发表于 2012-10-8 21:41:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data(cars)
#list(cars)
dim(cars)
speed<-cars[,1]
dist<-cars[,2]
Ybar<-mean(dist)
N<-100
ybar<-rep(0,N)
for(i in 1:N){
ybar<-mean(sample(dist,10))
}
ybar

这是我写的程序,已经没有问题,但是程序中N取的是固定值(如N<-100),现在像让N取从100变化到2000,步长为100时的共20个数,计算ybar 该怎么循环N啊?

二维码

扫码加我 拉你入群

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

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

关键词:speed cars Data list ARS speed

回帖推荐

qoiqpwqr 发表于11楼  查看完整内容

data(cars) dim(cars) speed

沙发
qian32167 发表于 2012-10-8 21:44:38
data(cars)
#list(cars)
dim(cars)
speed<-cars[,1]
dist<-cars[,2]
Ybar<-mean(dist)
N<-100
ybar<-rep(0,N)
for(i in 1:N){
ybar[i]<-mean(sample(dist,10))
}
ybar

上面程序循环少个i 以这个为准

藤椅
qoiqpwqr 发表于 2012-10-8 23:22:13
再对N做一个循环,结果输出为一个list


data(cars)
dim(cars)
speed <- cars[, 1]
dist <- cars[, 2]
Ybar <- mean(dist)
Ns <- seq(100, 2000, by=100)
output <- list()
k <- 1
for (N in Ns) {
    ybar <- rep(0, N)
    for (i in 1:N) {
        ybar[i] <- mean(sample(dist, 10))
    }
    output[[k]] <- ybar
    k <- k + 1
}

板凳
qian32167 发表于 2012-10-9 08:24:04
qoiqpwqr 发表于 2012-10-8 23:22
再对N做一个循环,结果输出为一个list
首先谢谢版主啊,不过可能是我表述不清,最后的结果并不是我想得到的答案

程序的意思是从Cars(2行,50列)数据集中对第二列的50个数据进行抽样,抽样个数为10,进行100次循环抽样,得到100次抽样的均值ybar,如程序所示
data(cars)
#list(cars)
dim(cars)
speed<-cars[,1]
dist<-cars[,2]
Ybar<-mean(dist)
N<-100
ybar<-rep(0,N)
for(i in 1:N){
ybar<-mean(sample(dist,10))
}
ybar<-mean(ybar)
现在的目的是把抽样次数100要换作一组从100变化到2000,步长为100时的数,也就是20个数(例如上面N取100时得到一个抽样平均数),输出的结果应该是20个抽样平均数,要怎么循环啊?谢谢

报纸
qian32167 发表于 2012-10-9 08:37:10
谢谢版主,
data(cars)
#list(cars)
dim(cars)
speed<-cars[,1]
dist<-cars[,2]
Ybar<-mean(dist)
N<-100
ybar<-rep(0,N)
for(i in 1:N){
ybar[i]<-mean(sample(dist,10))
}
ybar<-mean(ybar)
我的目的是从cars数据集中的第二列中共50个数据进行抽样,抽样个数为10,重复N=100次,求得平均值ybar得到1个均值, 现在的问题是抽样次数不再是一个数,而是(100,200...2000)的这样的一个20个数的数列,最后想得到的结果应该是20个均值,该怎么办?谢谢

地板
qoiqpwqr 发表于 2012-10-9 09:07:45
qian32167 发表于 2012-10-9 08:37
谢谢版主,
data(cars)
#list(cars)
重复100次应该得到100个样本啊,怎么只求一个均值?

7
qian32167 发表于 2012-10-9 09:16:08
我的意思是重复抽样100次,赋给向量rep(0,N)
再求得均值 运行结果如下
> data(cars)
> #list(cars)
> dim(cars)
[1] 50  2
> speed<-cars[,1]
> dist<-cars[,2]
> Ybar<-mean(dist)
> N<-100
> ybar<-rep(0,N)
> for(i in 1:N){
+ ybar[i]<-mean(sample(dist,10))
+ }
> ybar
  [1] 35.7 38.7 49.6 36.3 42.5 42.3 54.6 48.3 48.1 39.2 38.5 58.8 45.5 32.2
[15] 35.3 54.0 42.8 39.7 33.7 34.6 49.0 58.3 34.0 37.3 44.1 34.5 43.3 39.3
[29] 36.4 39.5 40.0 53.7 30.2 38.4 39.8 52.3 32.5 43.3 38.2 39.6 50.2 44.1
[43] 44.1 36.7 47.7 39.8 38.3 53.5 43.5 46.1 43.6 22.1 53.0 46.2 62.7 54.0
[57] 48.7 49.8 34.9 42.3 55.6 47.9 47.9 40.6 41.9 32.0 45.6 40.7 50.2 49.8
[71] 46.8 41.6 37.3 41.5 39.4 34.0 42.2 45.7 50.8 39.9 38.9 34.2 28.0 48.7
[85] 49.1 30.2 47.1 44.0 53.9 54.4 39.0 35.0 43.7 39.3 45.4 35.0 30.8 50.6
[99] 47.9 38.9
> > mean(ybar)
[1] 42.809
>
现在N要取100,200.希望得到如42.809这样的20个均值
上面程序合起来就是
data(cars)
#list(cars)
dim(cars)
speed<-cars[,1]
dist<-cars[,2]
Ybar<-mean(dist)
N<-100
ybar<-rep(0,N)
for(i in 1:N){
ybar[i]<-mean(sample(dist,10))
}
ybar<-mean(ybar)

8
qian32167 发表于 2012-10-9 09:18:47
qoiqpwqr 发表于 2012-10-9 09:07
重复100次应该得到100个样本啊,怎么只求一个均值?
是100个样本,就是求这100个样本的均值,得到一个,现在100个换做100,200...2000,求得20个均值

9
qoiqpwqr 发表于 2012-10-9 09:57:57
qian32167 发表于 2012-10-9 09:16
我的意思是重复抽样100次,赋给向量rep(0,N)
再求得均值 运行结果如下
> data(cars)
那为什么不直接取个1000的样本呢?

10
qian32167 发表于 2012-10-9 13:20:23
qoiqpwqr 发表于 2012-10-9 09:57
那为什么不直接取个1000的样本呢?
(1)         从R中装载数据集”cars”;
(2)         当Iteration=100,N=50,n=10时,求均值ybar ;
(3)         当Iteration=500,N=50,n=10时,求均值ybar ;
(4)         当Iteration=1000,N=50,n=10时,求均值 ybar;
(5)         编写循环语句,计算Iteration 从100变化到2000,步长为100时,求均值ybar ;
原题是这样,如果我没理解错的话按照(2)(3)(4)求得的是当N=100,500,1000时,求得均值,用上面程序改变N的值即可,但是问题(5)是要求N等于100,200,...2000这20个数时的均值ybar!!!求得的输出结果也应该是20个均值数列啊!

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

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