R:变更前的值

时间:2016-05-25 17:55:14

标签: r diff

以下代码将test拆分为减少,增加或无变化后的数字。

test <- c(1,2,3,4,5,5,4,1,2,3)
ifelse(diff(test)>0, "up", ifelse(diff(test)<0, "down", "no change"))

[1] "up" "up" "up" "up" "no change" "down" "down" "up" "up"  

但是,我需要"up""down""no change"来反映更改前的数字,而不是获取更改结果。

例如,上面设置中的最后一个1会启动,因为它后跟一个更高的数字。

我尝试了各种滞后,但因为它没有改变if语句的逻辑,所以它没有奏效。有没有办法做到这一点?

编辑:

预期输出类似于上面示例中显示的输出,但由于没有前导,因此不会丢弃第一个数字,而是排除了最后一个数字,因为它后面没有任何变化。

真的希望有道理,但如果不是,我会尽力澄清。

1 个答案:

答案 0 :(得分:2)

x返回长度小于diff(x)[i]=x[i+1]-x[i]的数组,以便c("no change", result)。是否要在i + 1&#34;之前考虑这个变化。或改变&#34;在我之后#34;没有区别,它仍然是相同的价值。

如果你想获得一个与你的输入相同长度的数组,对于你的情况,可以尝试c(result, "no change")$('#gallery a').click( function() { var id = $(this).attr('id'); // Id of the current selection var current = 0; // Array index of the current item getTpl() // Get and load lightbox template .then(getData) // Get JSON data of the selected item .then(getItem) // Pass JSON data and get the item .then(loadItem) // Use JSON data to create the HTML output .done(function() { // Wrap everything up, intialize the lightbox controls // (requires the JSON data) and load the lightbox }); }); ,这会将结果填充到与输入相同的长度,并且表示&#34;没有变化&#34;在第一次进入之前发生,或者没有变化&#34;在最后一次进入后发生。我无法弄清楚哪一个是你想要的那个,但它应该是两个中的一个。