首页 > 解决方案 > 将向量的所有元素(包含 9 个元素)除以来自另一个向量(包含 100 个元素)的第一个、第二个、...第 100 个元素

问题描述

您好,我在 R 中的程序确实需要帮助。我有包含九个元素的向量,我需要将每个元素除以另一个向量中的第一个、第二个、......、百分之一的元素。我尝试了这个 for 循环,但它没有用

er=matrix(1,100)
LCZ2016=matrix(1,100)

for(i in 2:100)
  for(j in 1:9)
  {
    {
      er[i]=rnorm(1, 0, SdeLcCZ2016)
      LCZ2016[i]=DEA['L'][CZ2016,][j,]/exp(er[i])
    } 
  }

=DEA['L'][CZ2016,] 是具有 9 个元素的向量,我需要像这样创建具有 100 个元素的 LCZ2016

LCZ2016[1]=DEA['L'][CZ2016,][1] //exp(er[1])
LCZ2016[2]=DEA['L'][CZ2016,][2] //exp(er[2])
.
.
.
LCZ2016[50]=DEA['L'][CZ2016,][1] //exp(er[50])

等请你知道吗?

标签: rfor-loopvectorapply

解决方案


这正是outer它的目的。

a <- 1:9
b <- 1:100 
out2 <- outer(a, b, '/')
dim(out2)
#[1]   9 100

YOLO 的答案比较。

output <- sapply(a, function(x) x/b)

identical(t(out2), output)
#[1] TRUE

推荐阅读