,我有以下數據:多行中的R
measurement <- c(1:30)
angle <- rnorm(30, 0, 0.4)
data.1 <- data.frame(measurement, angle)
我要作出這樣的返回四個不同的場景的真實值的函數:
1. When 'angle' > 0.3
or 2. When 'angle' < -0.3
or 3. When 'angle' + the previous 'angle' > 0.3
or 4. When 'angle' + the previous 'angle' < -0.3
我試着它與一個for循環,我已經嘗試了以下方式,但我只是不知道如何包括角度和角度的總和測量一個時間步更早(所以我在這裏做什麼是錯的,但我怎麼能改進它?最好在計算上最不費力的方式,因爲我使用海量數據(套)):
n<-data.1$angle
function1 <- function(n){
return(n>0.3 | n<(-0.3) | (n+(n-1))>(0.3) | (n+(n-1))<(-0.3))
}
對不起,是的R新手而是通過R文件的迷宮漫步後,我看到沒有其他辦法,只能在這裏問吧。感謝您的幫助!
你不包括先前的角度。你正在從當前角度減1。你的函數需要你實現它的兩個參數,第一個是角度,第二個是前一個索引(或者只是索引)的角度。 – Arun 2013-03-07 16:35:26
謝謝Arun,那正是我不知道該怎麼做的,儘管下面的解決方案絕對更優雅。如果我在哪裏使用我寫的方法,我將如何'參數化'在上一個索引的角度?在你下面的方法中,c()函數中0的用法是什麼? (試圖從這裏學到最多:) – Joeri 2013-03-07 17:38:33
0的目的是將它添加到'data.1 $ angle'的第一個元素。由於您將它添加到前一個角度,所以第一個角度不會有前一個角度。所以,我加0。 – Arun 2013-03-07 17:40:20