作者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