看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用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://www.ptt.cc/bbs/R_Language/M.1518437015.A.C26.html
clansoda: 我有一個問題,根據你算出來的第二個值,為啥第三個是 02/12 20:49
clansoda: 正號,我的理解是 (-12 - (-10)) / -10 = 0.2 02/12 20:49
clansoda: 如果你的差異算法是這樣算的話 02/12 20:49
clansoda: library(data.table) 02/12 20:50
clansoda: x$pd <- (x$value - shift(x$value)) / shift(x$value) 02/12 20:51
menghsuanliu: 若是用您的公式,我算出來會是正號,但我覺得正號就 02/12 20:56
menghsuanliu: 是怪怪的,才上來詢問 02/12 20:56
clansoda: 公式怪不怪只有你自己知道阿,端看你想幹嘛吧 02/12 20:58
menghsuanliu: 我想要它是負的……… 02/12 22:34
clansoda: 我其實不太懂 他為什麼要是負的 那這樣基期是10與12 02/12 23:06
clansoda: 的一個pair也應該是負的嗎? 02/12 23:06
clansoda: 還是你要的那個向量整個都要是負的 02/12 23:06
clansoda: 我大概知道你在講什麼了,所以你應該是要掛絕對值吧 02/12 23:11
clansoda: 我這邊用stepfun可以寫出你這種intution,如果你想做這 02/12 23:30
clansoda: 種的話用step function * 絕對值,因為你是算兩者距離 02/12 23:30
menghsuanliu: 感謝 02/13 10:28
Edster: 這樣都看得懂只能佩服. 02/13 12:03
menghsuanliu: 最後我自己寫function處理…謝謝大家花時間幫我看 02/13 21:51
menghsuanliu: 我的問題…… 02/13 21:51