我想用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)
答案 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))