将向量的所有元素(具有9个元素)除以另一个向量(具有100个元素)的第一,第二,...百个元素

时间:2018-12-09 11:39:32

标签: r for-loop vector apply

你好,我真的需要我的R语言程序的帮助。我的向量有9个元素,我需要将每个元素除以另一个向量中的第一个,第二个,...,百分之一的元素。我尝试了这个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])

等 请问您有什么主意吗?

2 个答案:

答案 0 :(得分:1)

我认为您可以做到:

a <- 1:9
b <- 1:100 

output = sapply(a, function(x) x/b)
print(dim(output))

[1] 100   9

此外,您可以按照@Andre的建议进行操作

sapply(a, /, b)

答案 1 :(得分:1)

这正是outer的意思。

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

YOLO's answer比较。

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

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