[问题] 计算差异百分比

楼主: menghsuanliu (库库少)   2018-02-12 20:03:32
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
我有一个data.frame, 其中一个column是数值(有正有负),我想计算与前一笔的差异百分比
(percentage difference)
[程式范例]:
x <- data.frame(year = c('2012','2013','2014'), value = c(15,-10,-12))
x$pd <- ???
**x$pd就是我想去算出的差异百分比 (NA,-1.67, -0.2)
作者: clansoda (小笨)   2018-02-12 20:49:00
我有一个问题,根据你算出来的第二个值,为啥第三个是正号,我的理解是 (-12 - (-10)) / -10 = 0.2如果你的差异算法是这样算的话library(data.table)x$pd <- (x$value - shift(x$value)) / shift(x$value)
楼主: menghsuanliu (库库少)   2018-02-12 20:56:00
若是用您的公式,我算出来会是正号,但我觉得正号就是怪怪的,才上来询问
作者: clansoda (小笨)   2018-02-12 20:58:00
公式怪不怪只有你自己知道阿,端看你想干嘛吧
楼主: menghsuanliu (库库少)   2018-02-12 22:34:00
我想要它是负的………
作者: clansoda (小笨)   2018-02-12 23:06:00
我其实不太懂 他为什么要是负的 那这样基期是10与12的一个pair也应该是负的吗?还是你要的那个向量整个都要是负的我大概知道你在讲什么了,所以你应该是要挂绝对值吧我这边用stepfun可以写出你这种intution,如果你想做这种的话用step function * 绝对值,因为你是算两者距离
楼主: menghsuanliu (库库少)   2018-02-13 10:28:00
感谢
作者: Edster (Edster)   2018-02-13 12:03:00
这样都看得懂只能佩服.
楼主: menghsuanliu (库库少)   2018-02-13 21:51:00
最后我自己写function处理…谢谢大家花时间帮我看我的问题……

Links booklink

Contact Us: admin [ a t ] ucptt.com