作者cheen885 ()
看板R_Language
標題依變項分組的加總
時間Fri Dec 3 18:24:00 2021
更新
如 c大及f大所述
我確實第一次就做對了xD
假設一資料集為:
Date dr TimeofPeriod permodel108 Cum
X1 12/1 1 1 10 10
X 2 12/1 1 1 20 30
X 3 12/1 1 2 10 10
X 4 12/2 1 1 30 30
X 5 12/2 1 1 10 40
X 6 12/2 2 1 20 20
X 7 12/2 2 1 10 30
我一開始的完整語法是:
install.packages("tidyverse") #for mutate
install.packages("lubridate") #for time format transfrom
install.packages("dplyr") #for rank
Install.packages (“plyr”) #for rank
library(tidyverse)
library(lubridate)
library(dplyr)
library(plyr)
NewFile<-mutate (group_by(file, date, doctor, TimeofPeriod), cum = cumsum (pre
dmodel108))
View(NewFile)
上列語法因多了一個 library(plyr)
故導致最後的結果如原文所示
(變成逐筆累加,而未依照組別去累加)
我後來重新打開 R
聽f大的建議
不安裝 plyr
其他程式照跑
就可以得到完美的異組累加(上方表格cum欄位、或下方17樓我的回覆照片)
真的謝謝版上各位大大
也非常謝謝f大的回文>_______<
———————以下為原文———————
各位大大好,不好意思
想請問
我手邊有一組資料
https://i.imgur.com/w453bWR.jpg
因為想依照日期(date)、醫師(doctor )、診間時段(TimeofPeriod)分群,將最右
欄的premodel108個數值累加
但是希望可以是 X1-X7、X8-X15的數值分別累加
我打的程式碼是:
file<-mutate(group_by(file,date,doctor,TimeofPeriod),cum=cumsum(predmodel108
))
做出來的卻是 X1-X15的累加QQ
想請問我的程式碼應如何修正呢
謝謝大家QQQQ
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.9.114.174 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1638527042.A.383.html
※ 編輯: cheen885 (101.9.114.174 臺灣), 12/03/2021 18:26:59
推 locka: file <- file %>% group_by(date, doctor,TimeofPeeiod) %>12/03 18:43
推 locka: % summarise(sum=sum(premodel108)12/03 18:43
推 locka: 然後既然都用 dplyr 了 就用 pipeline 吧 巢狀的程式碼不好 12/03 18:43
推 locka: 閱讀12/03 18:43
嗚謝謝你!!那麼快速回復我好感動
不過想請問我跑出來長這樣...
https://i.imgur.com/5mqEZ02.jpg
應該如何處理呢QQ
謝謝你
※ 編輯: cheen885 (101.9.114.174 臺灣), 12/03/2021 21:29:11
→ locka: 看錯誤訊息是資料筆數對不起來,剩下沒有可重現錯誤的資料12/03 21:49
→ locka: 愛莫能助(聳肩12/03 21:49
推 Gjerry: 其實可以考慮用 split 切開 data frame 等用 lapply 處理12/03 23:38
→ Gjerry: 完再合起來,對於不熟悉的人來說應該比較直覺12/03 23:38
→ locka: G大 其實我覺得 lapply 也沒有很直觀耶XDDD12/04 00:06
推 chenwz: 因為group_by 分組後的列數跟原本資料對不起來,所以沒辦12/04 09:19
→ chenwz: 法直接給新欄位。可以重給一個df, 再join起來12/04 09:19
推 Gjerry: 不然用 for loop 也可以,一開始就學 dplyr 我覺得會有點12/04 15:30
→ Gjerry: 卡卡的12/04 15:30
推 celestialgod: 我覺得原PO一開始就寫對了 原PO要不要檢查一下資料12/05 01:09
→ celestialgod: ? 12/05 01:09
→ celestialgod: 不然試試看data.table 12/05 01:09
咦!!對,我剛剛檢查資料
確實做出來是對的
如下圖部分資料所示
https://i.imgur.com/ZxQSIli.jpg
(藍線為異組分線,分框框為另一組的累積增加值)
不知道為何再發文前檢查過資料
當時腦筋打結,誤以為自己做錯語法了
謝謝板上各位大大的幫忙QQQ
貴版真的好有溫暖>____<
※ 編輯: cheen885 (101.9.238.184 臺灣), 12/06/2021 00:17:36
※ 編輯: cheen885 (101.9.238.184 臺灣), 12/06/2021 20:41:13
※ 編輯: cheen885 (101.9.238.184 臺灣), 12/06/2021 20:42:27