【问题标题】:I am trying to append/concatenate my vector in R, but it will only concatenate my last value, how can i get all of them to be concatenated?我正在尝试在 R 中附加/连接我的向量,但它只会连接我的最后一个值,我怎样才能将它们全部连接起来?
【发布时间】:2015-01-30 16:44:00
【问题描述】:
for(i in 1:length(freqy1)){
ps11 = rbeta(1, (1 + freqy1[i]), (1 + (freqy1[i]/50)))
    ps11_v = list(c(ps11))
    print(ps11)
    for(i in 1:length(freqy1)){
        ps11_v = c(ps11_v, ps11)
    }
    ps12 = 1 - (rbeta(1, (1 + freqy1[i]), (1 + (freqy1[i]/50))))
    #print(ps12)
}
print("VECTOR VECTOR VECTOR")
print(ps11_v)

它只会打印出 ps11_v 的最后一个值(但它会打印 freqy1 的长度),我怎样才能让每个 ps11 值都添加到我的向量中?

【问题讨论】:

  • 你在两个循环中有相同的计数器变量i
  • rbeta 是矢量化的,因此您可以在不编写循环的情况下执行ps11<-rbeta(length(freqy1),1+freqy1,1+freqy1/50)
  • 嗯.. 不,那不是他的问题 :( 不过谢谢!
  • 非虚拟机!你的第二条评论奏效了!!谢谢!

标签: r vector concatenation


【解决方案1】:

您可以通过以下方式替换您的代码:

ps11 <- rbeta(length(freqy1),1+freqy1,1+freqy1/50)
ps12 <- 1 - ps11

达到预期的效果。

【讨论】:

    猜你喜欢
    • 2018-09-24
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-30
    • 2019-07-16
    相关资源
    最近更新 更多