如何使用R中上下限的和

时间:2018-07-04 22:33:39

标签: r

我想用R代码写这个方程式:

log(100) + log(2!) + $\Sum_{j=1}^{5} (log(5)/j)$ 

我只是不知道将等式的最后一项转换为R代码。我尝试过:

log(100)+log(factorial(2))+{for(i in 1:5) sum(log(5)/i)}

但是我得到了numeric(0)

2 个答案:

答案 0 :(得分:0)

R是矢量化的。

因此,您可以声明v <- 1:5,然后引用log(5) / v,也可以引用sum(log(5) / v)

实际上,您可以将所有内容减少到sum(log(5) / (1:5))

答案 1 :(得分:0)

for循环中,sum(log(5)/i)不做任何事情,因为它是一个数字。例如。它将sum包装到log(5)/i,然后分别包装log(5)/2,而不是整个sum

for循环中的一个选项是初始化一个值为(0)的变量('s1'),然后将每个循环中获得的值分配给's1',同时将其与之前的值相加

s1 <- 0
for(i in 1:5) s1 <- s1 + log(5)/i

但是,可以通过将log(5)除以行序列来得到vector的值,然后用sum换行来对其向量化

sum(log(5)/seq_len(5))