[英]Using vectors instead of loops in R
我正在瀏覽R教程http://data.princeton.edu/R/gettingStarted.html在頁面的末尾,他們要求“使用x向量模擬來自回歸模型Y = a + bx + e的20個觀測值設置a = 1和b = 2.使用標准正態誤差生成為rnorm(20),其中20是觀測值。“ 我能想到的唯一方法就是:
error <- rnorm(20)
x <- 1:10
Y <- matrix(rep(1,200),20,10)
for (i in seq(1,20,1)) {
Y[i,1:10] <- 1+2*x+error[i]
}
這似乎有效,但我很好奇是否有更優雅的解決方案,沒有for循環,是否可用?
我認為使用rnorm(20)
的方向會讓人感到困惑,更好:
a=1
b=2
x=1:10
replicate(20, a+(b*x)+rnorm(1))
然后一切都按照應有的方式進行回收
這是代碼的替代方案。 我使用高度優化的apply
功能。
> set.seed(1)
> error <- rnorm(20)
> x <- 1:10
> t(apply(matrix(error), 1, function(e) 1 + (2*x) + e) )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.