请选择 进入手机版 | 继续访问电脑版
楼主: 小章鱼wl
4897 6

[程序分享] R语言for循环 [推广有奖]

  • 0关注
  • 0粉丝

大专生

8%

还不是VIP/贵宾

-

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

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求助!!数据表共30行36列,从数据中的每一行随机抽取8个数,重复100次,求每次随机抽取8个数的平均值,再求100个平均值的平均值。现在只写出这些for(i in 1:100){  s<- sample(ddt[1, ],8, replace=T)
  print(s)
    }
请问有人会吗?


二维码

扫码加我 拉你入群

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

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

关键词:for循环 For R语言 平均值 数据表

中国梦丶 发表于 2018-4-7 11:39:17 来自手机 |显示全部楼层 |坛友微信交流群
小章鱼wl 发表于 2018-4-7 09:32
求助!!数据表共30行36列,从数据中的每一行随机抽取8个数,重复100次,求每次随机抽取8个数的平均值,再求 ...
不太懂你意思,每一行抽八个,求个均值,三十行就有三十个均值,重复一百次就有3000个均值了

使用道具

中国梦丶 发表于 2018-4-7 11:39
不太懂你意思,每一行抽八个,求个均值,三十行就有三十个均值,重复一百次就有3000个均值了
你好,是这样的,每行随机抽取八个数,得到一个平均值,以这个平均值为半径求出对应的圆面积,这一行重复100次,得到100个圆面积,再求100个圆面积的平均值,每行都是这样,最后想得到的是30个平均圆面积的值。请问您有思路吗

使用道具

jiangbeilu 学生认证  发表于 2018-4-7 19:06:35 |显示全部楼层 |坛友微信交流群
  1. ##构建一个矩阵 30*36
  2. set.seed(201811)
  3. origin <- matrix(sample(1:400,36*30,replace=T),nrow=30,ncol=36)
  4. ##编写1个每行取8个数,取100次的函数,返回这100次的平均值
  5. sample8_100th <- function(x){
  6.     mat <- matrix(NA,nrow=8,ncol=100)
  7.     for(i in 1:100){
  8.         mat[,i] <- sample(x,8)
  9.     }
  10.     return(mean(mat))
  11. }
  12. ##用apply对矩阵行进行计算,对每一行执行上述函数的操作,然后求个平均值,就可以得到30个值的平均值,也就是半径
  13. ## 圆的面积只与半径有关,所以只需要知道半径就好
  14. mean(apply(origin,1,sample8_100th))
复制代码
已有 1 人评分论坛币 收起 理由
cheetahfly + 30 精彩帖子

总评分: 论坛币 + 30   查看全部评分

使用道具

jiangbeilu 发表于 2018-4-7 19:06
您好,我现在要对一个名为ddt的数据表进行处理,运行您编写的程序返回错误,请问哪里出错了呢
##构建一个矩阵 30*36
set.seed(201811)
origin <- matrix(sample(ddt[ , ],36*30,replace=T))
##编写1个每行取8个数,取100次的函数,返回这100次的平均值
sample8_100th <- function(x){
  mat <- matrix(NA,nrow=8,ncol=100)
  for(i in 1:100){
    mat[,i] <- sample(x,8)
  }
  return(mean(mat))
}
##用apply对矩阵行进行计算,对每一行执行上述函数的操作,然后求个平均值,就可以得到30个值的平均值,也就是半径
## 圆的面积只与半径有关,所以只需要知道半径就好
mean(apply(origin,1,sample8_100th))

使用道具

jiangbeilu 发表于 2018-4-7 19:06
您好,非常感谢,但是我最后想知道的是每行100个圆面积的平均值,也就是30个值,请问如何得到呢

使用道具

jiangbeilu 学生认证  发表于 2018-4-8 11:10:07 |显示全部楼层 |坛友微信交流群
小章鱼wl 发表于 2018-4-7 20:38
您好,非常感谢,但是我最后想知道的是每行100个圆面积的平均值,也就是30个值,请问如何得到呢
  1. apply(origin,1,sample8_100th)
复制代码
把mean去掉,就是30个半径,你再处理一下就成圆的面积了

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-29 09:43