作者alias (希望)
看板Statistics
标题Re: [程式] R的回圈问题
时间Mon Mar 21 21:31:56 2011
所以你想做的事情是对xx或yy加一些乱数, 且要加10次
相当於是这样罗:
xxi<- xx+rnorm(5,mean=0,sd=0.005)+rnorm(5,mean=0,sd=0.005)+
rnorm(5,mean=0,sd=0.005)+rnorm(5,mean=0,sd=0.005)+
rnorm(5,mean=0,sd=0.005)+rnorm(5,mean=0,sd=0.005)+
rnorm(5,mean=0,sd=0.005)+rnorm(5,mean=0,sd=0.005)+
rnorm(5,mean=0,sd=0.005)+rnorm(5,mean=0,sd=0.005)
如果是这样你的程式应该是
for (i in 1:10)
{xx=xx+rnorm(5,mean=0,sd=0.005)
yy=yy+rnorm(5,mean=0,sd=0.005)
}
你原本的程式, 如同在原文中推文W大说的, 只是一样的事作100次而已
差别在哪里,你试试下面两个简单的例子就知道了
for (i in 1:10)
{xxi=xx+1
yyi=yy+1
}
for (i in 1:10)
{xx=xx+1
yy=yy+1
}
※ 引述《wertymin24 (werty)》之铭言:
: ------------------------------------------------------------------------
: [软体程式类别]:
: R
: [程式问题]:
: 算是资料处理吧?
: [软体熟悉度]:
: 中(3个月到1年)
: [问题叙述]:
: 我今天很无聊弄了一堆点(x,y),想帮每个点加上一些随机乱数
: 就好像先点了5个点,找出他们的xy後,帮xy加上一些乱数。
: 但是我的电脑用回圈的方式加,我命令他加10个,却只跑出4个来
: 请问是为什麽呢?
: 请厉害的人帮忙一下了~谢谢
: [程式范例]:
: xx<-c(0.120,0.132,0.140,0.158,0.190)
: yy<-c(0.750,0.771,0.800,0.820,0.859)
: for (i in 1:100)
: {xxi=xx+rnorm(5,mean=0,sd=0.005)
: yyi=yy+rnorm(5,mean=0,sd=0.005)
: }
: -----------------------------------------------------------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.41.49.82
1F:推 wertymin24:谢谢~但是我不是要加十次乱数 03/21 21:39
2F:→ wertymin24:我是想另外产生十组数字 03/21 21:39
3F:推 west1996:'xxi'会被看成一个变数名称,他不会自己随着i去跳,所以 03/21 22:22
4F:→ west1996:原本的程式等於一直把之前算的xxi yyi盖掉只留下最後一 03/21 22:22
5F:→ west1996:次的结果,你要改成先开一个100*5的matrix,然後把xxi改 03/21 22:24
6F:→ west1996:成xx[i,],这样每一个row就会装一次for回圈的结果 03/21 22:24
7F:推 wertymin24:喔喔楼上的方法可以用~谢谢啦 03/21 23:14