如何在R中使用sum()函数:从非0值(如i=2到n)开始求和
在R中实现从i=2到n的求和
首先纠正一个误解:sum()函数不会默认从0开始计算到n,它的作用是对传入的数值向量进行求和,求和的范围完全由你传入的向量决定。
要实现从i=2到n的求和,核心是先构造出2到n的数值序列,再传给sum(),具体分两种场景:
场景1:直接对整数2到n求和
用R的序列运算符:生成2到n的整数向量,再传入sum()即可:n <- 10 # 示例n值 sum(2:n) # 计算2+3+...+10,结果为54场景2:对关于i的表达式求和(比如i²、1/i等)
利用R的向量化运算,直接对序列向量应用表达式后求和,无需写循环:n <- 10 # 计算2²+3²+...+10² sum((2:n)^2) # 计算1/2 + 1/3 + ... + 1/10 sum(1/(2:n))如果表达式逻辑复杂,也可以用
sapply()遍历序列计算每个值再求和:sum(sapply(2:n, function(i) { # 这里写你的复杂表达式,比如i*log(i) i * log(i) }))
总结:sum()的求和范围完全由你传入的向量控制,只要构造出正确的2到n的序列(或序列对应的计算值),就能得到想要的结果。
内容的提问来源于stack exchange,提问作者mx4h01
相关产品推荐
相关产品推荐

