在R中使用for循环求和

在R中使用for循环求和,r,math,R,Math,这可能是非常明显的,但我已经尝试了大约一个小时来修复它,但没有成功(我有点初学者): 函数是从表达式的1:8和的总和:席*益284400(I),其中席和彝是从两个列x和y的长度为8的数据帧中得出的。我只是想找到数值,不用自己计算 我尝试了下面的代码,但是当使用for循环时,它似乎一直在为I分配一个8的整数值。我是否错误地使用for循环 注意:我制作了一个x列的向量,称为“xvalues”,类似地,y列也被称为“yvalues” for(i in 1:8){ sum((xvalues[i]

这可能是非常明显的,但我已经尝试了大约一个小时来修复它,但没有成功(我有点初学者):

函数是从表达式的1:8和的总和:席*益284400(I),其中席和彝是从两个列x和y的长度为8的数据帧中得出的。我只是想找到数值,不用自己计算

我尝试了下面的代码,但是当使用for循环时,它似乎一直在为I分配一个8的整数值。我是否错误地使用for循环

注意:我制作了一个x列的向量,称为“xvalues”,类似地,y列也被称为“yvalues”

for(i in 1:8){
    sum((xvalues[i]*yvalues[i])-284400*(i))
    }
运行此命令后,我不断得到一个空输出,当我调用I时,它只会给出:

[1] 8

提前谢谢

这可能是因为您没有存储中间a步骤的结果,所以只能得到最终计算的结果

您可以通过以下方式(使用循环)获得总金额:

或者,您可以使用以下方法对计算进行矢量化:

i = 1:8
sum((xvalues[i]*yvalues[i])-284400*(i))
只需使用
sum(df$X*df$Y-284400*(1:nrow(df))

或者,您可以使用
dplyr
进行以下操作:

library(dplyr)
df %>%
  mutate(value = X * Y - 284400 * row_number()) %>%
  summarise(sumvalue = sum(value))

sum(xvalues*yvalues-284400*(1:8))
。。。没有循环。你好。是否要获取每个值对的乘积之和
xvalues
/
yvalues
或所有操作的总和?
library(dplyr)
df %>%
  mutate(value = X * Y - 284400 * row_number()) %>%
  summarise(sumvalue = sum(value))