【问题标题】:array in R number of items to replace is not a multiple of replacement lengthR中要替换的项目数的数组不是替换长度的倍数
【发布时间】:2016-04-18 19:09:08
【问题描述】:

我想问一下,如何使用循环在数组中设置一个值。这么说

a<-3
b<-4
for( i in 1:5)
{
  x[i] <- cbind(a*i, b*i)
}

但我总是收到错误消息:在 x[i]

【问题讨论】:

  • 您不应该在 R 中使用 for 循环来增长数组。尝试改用x = a * c(1:5)。我不确定您在代码中到底在做什么。

标签: arrays r for-loop cbind


【解决方案1】:

你可以这样做:

a <- 3
b <- 4
i <- 1:5
x <- cbind(a*i, b*i)

【讨论】:

  • 哇。没想到会这么简单。谢谢!
  • 真是一种方便的语言! :)
【解决方案2】:

利用矩阵函数和 R 直接在向量和矩阵上计算的事实。

在你的情况下,试试这个:

outer(1:5, 3:4, FUN = "*")

     [,1] [,2]
[1,]    3    4
[2,]    6    8
[3,]    9   12
[4,]   12   16
[5,]   15   20

【讨论】:

  • 以前不要使用那个“外层”。对我来说新知识。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-05
  • 2020-02-02
相关资源
最近更新 更多