【问题标题】:Warning message: number of items to replace is not a multiple of replacement length警告消息:要替换的项目数不是替换长度的倍数
【发布时间】:2020-07-08 13:15:23
【问题描述】:

我正在尝试在 R 中运行一个非常简单的脚本,但我一直收到此消息:要替换的项目数不是替换长度的倍数

我试过ifelse,它不起作用。

这是我的脚本:

a <- sample(0:1, replace=TRUE, size=10084)
presence <- 0
for (i in 10084) {
  presence[i] = a
}

如果有人知道解决方案,请告诉我:)

【问题讨论】:

  • 嗯,你为什么不把存在
  • 在任何情况下,你都必须在场

标签: r


【解决方案1】:

这里,在脚本中,presence 的长度为 1,'a' 为 10084,分配与for(i in 10084) 一样不正确,因为 10084 是单个值

presence <- numeric(length(a))
for(i in seq_along(a)) presence[i] <- a[i]

但是,它可以通过赋值简单地创建

presence <- a

【讨论】:

  • 我把它读作 a 是一个向量,而存在也是一个简单地等于 a 的向量:presence &lt;- a
  • @SteveM 是的,我的帖子中提到了presence &lt;-a
【解决方案2】:
presence <- matrix(NA, 1, 10)
presence
for (i in 1:10) {
  presence[,] = a
}
presence

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 2021-02-05
    • 1970-01-01
    相关资源
    最近更新 更多