作者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/m.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