楼主: frederic7
2352 10

这个小程序可以怎么改? [推广有奖]

  • 13关注
  • 3粉丝

副教授

7%

还不是VIP/贵宾

-

威望
0
论坛币
2031 个
通用积分
0.7200
学术水平
8 点
热心指数
18 点
信用等级
4 点
经验
9405 点
帖子
616
精华
0
在线时间
453 小时
注册时间
2009-9-26
最后登录
2022-3-19

2论坛币
g1=rnorm(30)
g2=rnorm(30,1)
g3=rnorm(30,2)
g4=rnorm(30,3)
g5=rnorm(30,4)

s1=c(mean(g1),var(g1),var(g1)/mean(g1),(var(g1))^0.5/mean(g1),length(g1))
s2=c(mean(g2),var(g2),var(g2)/mean(g2),(var(g2))^0.5/mean(g2),length(g2))
s3=c(mean(g3),var(g3),var(g3)/mean(g3),(var(g3))^0.5/mean(g3),length(g3))
s4=c(mean(g4),var(g4),var(g4)/mean(g4),(var(g4))^0.5/mean(g4),length(g4))
s5=c(mean(g5),var(g5),var(g5)/mean(g5),(var(g5))^0.5/mean(g5),length(g5))

怎么用循环的方式生成s1,s2,s3,s4,s5?

关键词:小程序 length mean Norm leng 程序

回帖推荐

aresblq 发表于10楼  查看完整内容

在R中,几百万次的循环也只比向量或矩阵运算慢几秒,在大多数的时候,完全没有必要为了使用矩阵而把非常简明的问题搞得这么复杂,当然,要是遇上数亿次的循环使用矩阵还是必要的,

ericaenjoy3 发表于4楼  查看完整内容

set.seed(100) list.create

ericaenjoy3 发表于3楼  查看完整内容

list.create

vrooadk 发表于2楼  查看完整内容

s

本帖被以下文库推荐

沙发
vrooadk 发表于 2010-1-4 23:47:36 |只看作者 |坛友微信交流群
s<-list()
for(i in 1:5){
g <- rnorm(30,( i-1))
s[[i]] <- c(mean(g),var(g),var(g)/mean(g),(var(g))^0.5/mean(g),length(g))
}
s <- do.call("rbind",s)
s
已有 1 人评分论坛币 热心指数 收起 理由
crystal8832 + 10 + 1 热心帮助其他会员

总评分: 论坛币 + 10  热心指数 + 1   查看全部评分

使用道具

藤椅
ericaenjoy3 发表于 2010-1-8 23:52:31 |只看作者 |坛友微信交流群
list.create<-list()
result<-list()

for (i in 1:5) {
        list.create[]<-rnorm(30,(i-1))
}

bin.division<-function(x) {
        return(mean(x)/var(x))
}

bin.operation<-function(x) {
        return(mean(x)^0.5/var(x))
}

five<-function(x){
        return(list(mean(x),var(x),bin.division(x),bin.operation(x),length(x)))
}
result<-sapply(list.create, five)

result
已有 1 人评分论坛币 热心指数 收起 理由
crystal8832 + 10 + 1 热心帮助其他会员

总评分: 论坛币 + 10  热心指数 + 1   查看全部评分

使用道具

板凳
ericaenjoy3 发表于 2010-1-8 23:53:53 |只看作者 |坛友微信交流群
set.seed(100)
list.create<-list()
result<-list()

for (i in 1:5) {
    list.create[[i]]<-rnorm(30,(i-1))
}

bin.division<-function(x) {
    return(mean(x)/var(x))
}

bin.operation<-function(x) {
    return(mean(x)^0.5/var(x))
}

five<-function(x){
    return(list(mean(x),var(x),bin.division(x),bin.operation(x),length(x)))
}
result<-sapply(list.create, five)

result

使用道具

报纸
ssawee 发表于 2010-1-9 18:49:00 |只看作者 |坛友微信交流群
R中不建议用for
为什么不组成个矩阵,再算

使用道具

地板
shenyu2070 在职认证  发表于 2010-1-10 20:00:43 |只看作者 |坛友微信交流群
学习学习!

使用道具

7
frederic7 发表于 2010-3-2 13:02:48 |只看作者 |坛友微信交流群
给你邮件了
啊哦

使用道具

8
ruiqwy 发表于 2010-3-2 13:16:09 |只看作者 |坛友微信交流群
数据量不大用循环还是可以的,数据量一大最好用矩阵运算。
R is the second language for me!Using R is standing on the shoulders of giants!   Let\'s use R together!

使用道具

9
ryusukekenji 发表于 2010-3-5 20:23:59 |只看作者 |坛友微信交流群
使用R语言软件尽量避免循环,
  1. > gsum <- data.frame(g1=rnorm(30), g2=rnorm(30,1), g3=rnorm(30,2), g4=rnorm(30,3), g5=rnorm(30,4))
  2. > gresult <- data.frame(gmean=apply(gsum, 2, mean), gvar=apply(gsum, 2, var), gstd <- apply(gsum,2, st))
复制代码

使用道具

10
aresblq 发表于 2010-3-6 13:30:40 |只看作者 |坛友微信交流群
在R中,几百万次的循环也只比向量或矩阵运算慢几秒,在大多数的时候,完全没有必要为了使用矩阵而把非常简明的问题搞得这么复杂,当然,要是遇上数亿次的循环使用矩阵还是必要的,
已有 1 人评分论坛币 收起 理由
crystal8832 + 5 分析的有道理

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

使用道具

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

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

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

GMT+8, 2024-4-30 16:28