【问题标题】:Difference between neighbouring elements of a vector向量的相邻元素之间的差异
【发布时间】:2014-03-09 00:46:48
【问题描述】:

我不知道如何解决 R 的入门练习,所以练习是

创建一个向量 z,其中包含相邻元素之间的所有 99 个差异 x 使得 z[1]=x[2]-x[1], z[2]=x[3]-x[2], . . .

我猜它应该可以在没有循环的情况下工作。

【问题讨论】:

  • 搜索?diff,这可能会有所帮助。 [1]:stackoverflow.com/questions/13911486/the-diff-function
  • 我无法尝试,因为我刚开始使用 R 并且真的不知道。因此,我基本上在想它可能是什么。我正在考虑创建一个包含增加索引的向量,但我想这并不能解决迭代问题。我还搜索了没有循环的迭代,我总是遇到函数 sapply() 但我没有得到它的实际作用。
  • 您描述的问题与您的帖子标题不匹配。也许更好的标题可能是“向量的相邻元素之间的差异”。
  • 是的。谢谢。改了

标签: r loops


【解决方案1】:

听起来像 diff 函数

diff(x)

您也可以使用此代码:

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

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

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

【讨论】:

  • 是的,这是真的。听起来确实像 diff(x) 但由于课程中没有介绍这个函数,我想这个练习必须有一个非常基本的直接方法?
  • 非常好。非常感谢你的帮助。我想这就是我们想要的。
  • 3 年后这是很大的帮助 :)
【解决方案2】:
x <- c(1,3,3,9) 
(z <- x[-1] - head(x, -1))
# [1] 2 0 6

【讨论】:

  • 好吧!我没想到……太好了。非常感谢
  • @lukeA 我喜欢你的回答
猜你喜欢
  • 2012-06-21
  • 1970-01-01
  • 2021-02-28
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多