2013-12-13 29 views
0

這很難短語這個問題的標題,但什麼是有,是XTS向量:如何將一個隨機值添加到向量與取決於值R中的標準偏差

> test 
        E1  E2  E3  E4 FP5 
2012-05-17 03:34:37 4045.75 4045.75 2835.5 1292 171.9 

現在,我想將正態分佈的結果添加到每個測試值,但是我希望sd參數(標準偏差)是該值本身的sqrt

對於isntance,在非自動化方法中,我將:

test$E1 = test$E1 + rnorm(1, sd = sqrt(test$E1)) 
test$E2 = test$E2 + rnorm(1, sd = sqrt(test$E2)) 
... 

任何方式以更簡單的方式做到這一點?

回答

2

爲此,您可以用申請,要求測試的列:

test = apply(test, 2, function(x) x+rnorm(length(x), sd=sqrt(x))) 

更長的形式(不單行函數語法):

adjust.values = function(x) { 
    return(x + rnorm(length(x), sd=sqrt(x))) 
} 
test = apply(test, 2, adjust.values) 
相關問題