如何在r编程中在表中添加两个连续的行

时间:2015-12-05 23:37:59

标签: r

我是R编程的新手。我想在表中添加第一列的两个连续行。这是我尝试过的功能:

list = {{i1, min1, max1}, {i2, min2, max2}, {in, minn, maxn}};

Sum[f, Evaluate[Sequence @@ list]]

我没有得到任何显示。

请告诉我我的错误。感谢

2 个答案:

答案 0 :(得分:1)

我注意到的一些事情:

  1. 确保您运行该功能(您已在此处声明,但尚未运行)
  2. 每次循环运行时,您都会保存变量y。在这种情况下,您的输出将是最后两行的总和(我不认为这是您想要的)。
  3. x是矢量,而不是数据帧,因为您只选择了第一列。因此,x [i,1]将产生错误,因为x是一维的。 x [i]就是你想要的。
  4. 以下是您可以这样做的方法:

    x <- airquality[ , 1]
    
    # Declare your function
    fun <- function(x){
        y <- numeric()
        for (i in 1:(length(x)-1)){
            y <- c(y, sum(x[i], x[i+1])) # Add to y with each loop cycle
        }
        y
    }
    
    # Run your function:
    fun(x)
    

    注意:在R中有更有效的方法可以做到这一点,但看起来你可能对C ++样式循环感觉更舒服。但我猜,完成比完美更好。

    编辑:格式化

答案 1 :(得分:1)

我认为这可以满足您的需求:

x + c(x[-1], 0)

x[-1]是没有第一个元素的x。最后的0使两个向量的长度相同,因此可以添加它们。