将R中向量中元素的值加在一起

时间:2016-01-21 22:07:54

标签: r fibonacci

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

  

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

这给了我:

  

ÿ
       [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值,但是我还没有找到一种方法来总结这个向量中元素的值。尽管搜索谷歌和帮助文件,我还是找不到答案。

我问是否有人可以根据我以前用于确定Fibonacci序列的代码来解决这个问题。谢谢!

1 个答案:

答案 0 :(得分:1)

你的代码中还有一个额外的'+',所以我在这里重新创建了这个。+ / p>

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])