2014-02-11 44 views
2

我很抱歉打扰你,但我不知道如何解决R的入门练习。(当然,在发布之前,我真的很有雄心壮志Google搜索!)。 所以练习是 “用x的相邻元素 之间的所有99个差异创建矢量z,使得z [1] = x [2] -x [1],z [2] = x [3] -x [2],......“我想这应该是没有循环的工作。 我想这是很基本的,但我完全陌生的R.R中一个向量的相邻元素之间的区别

感谢您的帮助

+0

搜索'diff',可这能帮助? [1]:http://stackoverflow.com/questions/13911486/the-diff-function – PKumar

+0

我不能尝试,因为我刚刚开始与R,并没有真正的线索。所以我基本上在想它可能是什么。我正在考虑创建一个向量,包括增加的索引,但我想这不能解决迭代问题。我也googled迭代没有循环,我总是遇到的功能sapply()但我没有得到它真正做的。 – user3296555

+0

您描述的问题与您帖子的标题不符。也许一个更好的标题可能会像'相邻元素之间的区别'。 –

回答

11

听起来像DIFF功能

diff(x) 

您也可以使用此代码:

x[-1] - x[-length(x)] 

x[-1] - 没有第一个元素的向量x

x[-length(x)] - 向量x没有最后一个元素

+0

是的,这是真的。真的听起来像diff(x),但是因为这个函数没有在课程中介绍过,所以我想这个练习必须有一个非常基本的直接方法。 – user3296555

+0

非常好。非常感谢你的帮助。我想这就是所要求的。 – user3296555

+2

3年后,这是很大的帮助:) – Yoav24

3
x <- c(1,3,3,9) 
(z <- x[-1] - head(x, -1)) 
# [1] 2 0 6 
+0

好呀!我没有想到...太好了。非常感谢 – user3296555

+0

@lukeA我喜欢你的答案 – 2015-03-27 12:21:58

相关问题