作者celestialgod (天)
看板Statistics
標題Re: [程式] R 排序後相除
時間Sun Oct 23 19:20:00 2016
※ 引述《Jerome0511 (Jerome)》之銘言:
: TITLE請註名軟體類別 如[程式] stata
: 發文前請把灰色的註解刪除(可使用ctrl+y刪除一整行)
: [軟體程式類別]:R
: [程式問題]:資料處理
: [軟體熟悉度]:新手
: [問題敘述]:
: 想寫一段小程式
: 題目是有6筆資料A與B,A和B有相對應的關係
: A:5 8 4 2 9 1
: B:2 3 5 6 1 4
: 目前想要的作法是,把A依照大小先排序好如下:
: A:9 8 5 4 2 1
: B:1 3 2 6 8 4
: 排序好後,B兩個兩個相除=>在這裡當作C
: A:9 8 5 4 2 1
: B:1 3 2 6 8 4
: C:2 4 6
: 相除完後,製作長條圖
: X軸為個數1 2 3(因為C有三筆資料)
: Y軸對應為2 4 6
: 再麻煩大家了,謝謝。
C看不懂是什麼,提供一個簡單的程式給你參考
library(zoo)
df <- data.frame(A = c(5,8,4,2,9,1), B = c(2,3,5,6,1,4))
C <- rollapply(df$B[order(df$A, decreasing = TRUE)], 2,
function(v) v[2] / v[1], by = 2)
# [1] 3.0000000 2.5000000 0.6666667
如果是後面除前面,就上面做法
--
R資料整理套件系列文:
magrittr #1LhSWhpH (R_Language) https://goo.gl/OBto1x
data.table #1LhW7Tvj (R_Language) https://goo.gl/QFtp17
dplyr(上.下) #1LhpJCfB,#1Lhw8b-s (R_Language) https://goo.gl/GcfNoP
tidyr #1Liqls1R (R_Language) https://goo.gl/pcq5nq
pipeR #1NXESRm5 (R_Language) https://goo.gl/cDIzTh
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.235.91.146
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Statistics/M.1477221603.A.A27.html
1F:推 Jerome0511: C就是兩個相除(1+3)/2。(2+6)/2。(8+4)/2 10/23 19:50
改成下面這樣就好:
C <- rollapply(df$B[order(df$A, decreasing = TRUE)], 2, mean , by = 2)
長條圖應該自己畫就好了(攤手
2F:→ Pieteacher: 這叫兩個平均.... 10/23 20:00
3F:推 Jerome0511: Sorry 表達不好 10/23 20:14
※ 編輯: celestialgod (36.235.91.146), 10/23/2016 22:55:31