Re: [程式] R的迴圈問題

看板Statistics作者 (希望)時間15年前 (2011/03/21 21:31), 編輯推噓3(304)
留言7則, 2人參與, 最新討論串2/2 (看更多)
所以你想做的事情是對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

03/21 21:39, , 1F
謝謝~但是我不是要加十次亂數
03/21 21:39, 1F

03/21 21:39, , 2F
我是想另外產生十組數字
03/21 21:39, 2F

03/21 22:22, , 3F
'xxi'會被看成一個變數名稱,他不會自己隨著i去跳,所以
03/21 22:22, 3F

03/21 22:22, , 4F
原本的程式等於一直把之前算的xxi yyi蓋掉只留下最後一
03/21 22:22, 4F

03/21 22:24, , 5F
次的結果,你要改成先開一個100*5的matrix,然後把xxi改
03/21 22:24, 5F

03/21 22:24, , 6F
成xx[i,],這樣每一個row就會裝一次for回圈的結果
03/21 22:24, 6F

03/21 23:14, , 7F
喔喔樓上的方法可以用~謝謝啦
03/21 23:14, 7F
文章代碼(AID): #1DXrDFsq (Statistics)
討論串 (同標題文章)
文章代碼(AID): #1DXrDFsq (Statistics)