[問題] 計算差異百分比

作者: 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