怎么呼叫一个功能多次改变的参数,并将它们存储在一个数据架中R?

0

的问题

我是一个R-初学者以及需要运行一个模拟,在这里我呼正常分配多次不同的数值。

例如,我想到运行rnorm与每个sd一个时间,那里的sd增加,从1米,每个运行。 和我想的结果存储在一个列表或数据框架。 我知道,我怎么努力来实现为一个漂亮的基本步骤,但我没有试图通过它自己。

rnorm(n=1,平均值=0,sd=1)

rnorm(n=1,平均值=0,sd=2)

... rnorm(n=1,平均值=0,sd=M)

我试图码这一循环,但是它没有工作。

test <- for(i in 1:10){
  test <- rnorm(n=1, mean=0, sd=i)
  return(test)
}

如果我输入测试在控制台,我只是得到NULL作为输出。 希望有人能告诉我在正确的方向。

在此先感谢。

function r statistics
2021-11-24 00:50:10
2
0

如果你想产生1值每 i你可以试试

res <- c()
for(i in 1:10){
  res <- c(res,rnorm(n=1, mean=0, sd=i))
}
res
[1]  1.3586796 -0.2055755  1.1630148 -0.2152202 -6.8852978 -2.4899674 -2.7600297 -0.4745072  9.9002283  7.6317575

结果将被保存在一个向量。

如果你想以产生几个值每 i例如,5值每 i.

res <- matrix(0, nrow = 5, ncol = 10)
for(i in 1:10){
  res[,i] <- rnorm(n=5, mean=0, sd=i)
}
res
           [,1]       [,2]      [,3]       [,4]       [,5]       [,6]      [,7]         [,8]       [,9]     [,10]
[1,] -0.1645236 -1.4149903  1.194318  7.9215996 12.0080888   1.132754  3.328567  2.331569884  -5.118019  3.329504
[2,] -0.2533617  0.7291639 -1.836079 -1.4688859 -0.1962000 -10.829752 -4.969625 -3.546334986  -1.216608 10.630998
[3,]  0.6969634  1.5370658  1.023359 -4.1765385  3.4486968   8.793329  4.275084  0.008842813  10.602783 -3.041839
[4,]  0.5566632 -0.2246924 -3.388089  2.2788785  0.1400108   0.919520 -6.538683  0.594730593 -13.712101  3.700188
[5,] -0.6887557  1.7622155  4.299071 -0.5402184 -3.7163660  13.035670 -8.775434 -4.716167570   5.345516  2.670988
2021-11-24 00:57:51

就像一个魅力,非常感谢,@公园:)))
this_is_not_easy
0

它是好R做法来预先分配数组。 在一样这个小它不会让任何功能上的区别,但是你的代码将更多的惯用如下:

> k <- 10
> test <- rep(NA, k)
> for(i in 1:k){
+     test[i] <- rnorm(n=1, mean=0, sd=i)
+ }
> test
 [1]  -1.0083914   0.4404118   3.0581583  -8.2564404   3.7986092 -10.9064909  -6.5173390  -3.8936812
 [9]   5.2027044 -11.1803524

(在你的上方的代码:你不 return 值,从内部 for 循环,你会写你的阵列的不必要的分配在每一次迭代。)

2021-11-24 01:42:15

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................