【发布时间】:2019-11-06 20:31:00
【问题描述】:
基本上,我有
x<-rnorm(5)。
我写了一个向量,它接受整数1 <= n <= 5,然后在一个向量中返回来自系列(1/n) * sum_{i=1}^n (1/x_i)的结果
所以
n=1 -> 1 * 1/x_1
n=2 -> (1/2) * ( 1/(x_1 + x_2) )
n=3 -> (1/3) * ( 1/(x_1 + x_2 + x_3) )
n=4 -> (1/4) * ( 1/(x_1 + x_2 + x_3 + x_4) )
我写了这个函数:
series <- function(n){
n=seq(1,5,1)
x<-rnorm(length(n))
print(x)
return ( (1/n)* (1/sum(x[1:length(x[n])])) )
}
但结果不正确,例如
> series(5)
[1] 1.17810059 0.85472777 -0.55077392 -0.03856963 -0.19404827
[1] 0.8003608 0.4001804 0.2667869 0.2000902 0.1600722
对于n=2 -> 1/2 * 1/x_1 + 1/x_2 = (1/2) * (1/(1.17810059+ 0.85472777)),但不幸的是,根据我的代码,结果是0.4001804!
P.S:我想编写没有循环且没有任何函数需要调用库的代码!只需使用 R 中的基本已知函数定义一个简单的函数,然后我可以保存结果,如果需要使用 Vectorize() 或 outer()
【问题讨论】:
标签: r