你好,我真的需要我的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])
等 请问您有什么主意吗?
答案 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