【问题标题】:Univariate data in a loop R [duplicate]循环R中的单变量数据[重复]
【发布时间】:2016-06-27 12:15:51
【问题描述】:

我如何添加每个观察,比如说我有:

sim     <- rnorm(10)
 [1]  0.036755133  0.141612338 -0.527639307
 [4]  0.215321316  0.003577324  0.730846811
 [7] -0.346411468 -0.274199832 -0.893520992
[10] -0.991823477

现在我想再添加 10 个观察结果,每个观察结果一次出现一个。所以假设在 t==1 我们得到 0.54,所以现在我想要

     [1]  0.036755133  0.141612338 -0.527639307
     [4]  0.215321316  0.003577324  0.730846811
     [7] -0.346411468 -0.274199832 -0.893520992
    [10] -0.991823477  0.54

等等...在第 10 步处停止。有人知道如何处理这个问题吗?

【问题讨论】:

  • 如果您知道数据生成过程,最好预先分配一个向量sim &lt;- numeric(20)。然后填写。sim[1:10] &lt;- rnorm(10)。在 for 循环中:for(i in seq.int(10)) { sim[i + 10L] &lt;- rnorm(1)}.

标签: r


【解决方案1】:
sim <- rnorm(10) # simulated starting data set

方法一:

for(1 in 1:10){
   sim <- c(sim, rnorm(1)) # assigns existing data + new obs. to sim
}

方法二:

n   <- 10        # loop counter
for(i in 1:10){
  nn     <- n+i  # index
  sim[nn] <- rnorm(1) # add new data
} # You don't strictly have to have these in the for loop but it's a best practice

【讨论】:

  • 如果我想让 0.54 成为下一个数字?
  • @Vic 这只是使用随机数据。如果您希望.54 成为下一个数字,那么只需将rnorm(1) 替换为my_nums[i] 并将您想要的值分配给my_nums,例如my_nums &lt;- c(.54,.1,.2,.3,.4,.5,.. and so on )
【解决方案2】:
sim <- rnorm(10)
for(i in 1:10)
 sim <- c(sim,rnorm(1))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 2013-05-05
    • 2018-03-07
    • 2017-06-18
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多