作者menghsuanliu (库库少)
看板R_Language
标题[问题] 计算差异百分比
时间Mon Feb 12 20:03:32 2018
[问题类型]:
程式谘询(我想用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)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.206.5
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1518437015.A.C26.html
1F:→ clansoda: 我有一个问题,根据你算出来的第二个值,为啥第三个是 02/12 20:49
2F:→ clansoda: 正号,我的理解是 (-12 - (-10)) / -10 = 0.2 02/12 20:49
3F:→ clansoda: 如果你的差异算法是这样算的话 02/12 20:49
4F:→ clansoda: library(data.table) 02/12 20:50
5F:→ clansoda: x$pd <- (x$value - shift(x$value)) / shift(x$value) 02/12 20:51
6F:→ menghsuanliu: 若是用您的公式,我算出来会是正号,但我觉得正号就 02/12 20:56
7F:→ menghsuanliu: 是怪怪的,才上来询问 02/12 20:56
8F:→ clansoda: 公式怪不怪只有你自己知道阿,端看你想干嘛吧 02/12 20:58
9F:→ menghsuanliu: 我想要它是负的……… 02/12 22:34
10F:→ clansoda: 我其实不太懂 他为什麽要是负的 那这样基期是10与12 02/12 23:06
11F:→ clansoda: 的一个pair也应该是负的吗? 02/12 23:06
12F:→ clansoda: 还是你要的那个向量整个都要是负的 02/12 23:06
13F:→ clansoda: 我大概知道你在讲什麽了,所以你应该是要挂绝对值吧 02/12 23:11
14F:→ clansoda: 我这边用stepfun可以写出你这种intution,如果你想做这 02/12 23:30
15F:→ clansoda: 种的话用step function * 绝对值,因为你是算两者距离 02/12 23:30
16F:→ menghsuanliu: 感谢 02/13 10:28
17F:推 Edster: 这样都看得懂只能佩服. 02/13 12:03
18F:→ menghsuanliu: 最後我自己写function处理…谢谢大家花时间帮我看 02/13 21:51
19F:→ menghsuanliu: 我的问题…… 02/13 21:51