将 R 中向量中元素的值相加

Adding together the values of the elements in a vector in R

我是 R 的新手,正在尝试确定 Euler Project 问题中第二个问题的答案。我能够使用以下代码创建斐波那契数列:

l<- 50
y <- numeric(l)
y[1] <- 1
y[2] <- 2
for(i in 3:l) {
+ y[i] <- y[i-1] + y[i-2] }

这给了我:

y
[1] 1 2 3 5 8 13 21
[8] 34 55 89 144 233 377 610
[15] 987 1597 2584 4181 6765 10946

等等...

我解决这个问题的下一步要求我添加这个向量元素的所有偶数值。我知道这需要 y %% 2 == 0 才能获得所有 TRUE 值,但是我还没有找到一种方法来求和该向量中元素的值。尽管搜索了 google 和帮助文件,我还是找不到答案。

我想问是否有人可以根据我以前确定斐波那契数列的代码提出解决这个问题的方法。谢谢!

您的代码中有一个额外的“+”,所以我在此处重新创建并删除了它。

l <- 50
y <- numeric(l)
y[1] <- 1
y[2] <- 2
for(i in 3:l) {
  y[i] <- y[i-1] + y[i-2] }

然后,基于 TRUE 值的子集向量只需将条件放在方括号中:

evenY <- y[y %%2 == 0]

然后求和。在一行中:

sum(y[y %%2 == 0])