Разделить весь элемент вектора (из 9 элементов) на первый, второй, сотый элемент из другого вектора (из 100 элементов)

Привет, мне очень нужна помощь с моей программой в R. У меня есть вектор с девятью элементами, и мне нужно разделить каждый элемент на первый, второй, ...., сотый, элемент из другого вектора. Я пробовал это для цикла, но это не сработало

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 элементами, и мне нужно создать LCZ2016 со 100 элементами, подобными этому

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])

и т.д. Пожалуйста, у вас есть идеи?


person Kateřina Chábová    schedule 09.12.2018    source источник
comment
Это должно быть возможно. Но, пожалуйста, предоставьте минимальный воспроизводимый пример.   -  person markus    schedule 09.12.2018


Ответы (2)


Я думаю, вы можете сделать:

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

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

[1] 100   9

Кроме того, вы можете сделать, как предложил @Andre

sapply(a, /, b)
person YOLO    schedule 09.12.2018
comment
вы имели в виду sapply(a, /, b) ? - person Andre Elrico; 09.12.2018

Это именно то, для чего предназначен 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
person Rui Barradas    schedule 09.12.2018
comment
@markus Не преднамеренно, я перепутал щелчки мыши. - person Rui Barradas; 09.12.2018