[問題] 依變項分組的加總

作者: cheen885 (Dios est contigo)   2021-12-03 18:24:00
更新
如 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
作者: locka (locka)   2021-12-03 18:43:00
file <- file %>% group_by(date, doctor,TimeofPeeiod) %>% summarise(sum=sum(premodel108)然後既然都用 dplyr 了 就用 pipeline 吧 巢狀的程式碼不好閱讀看錯誤訊息是資料筆數對不起來,剩下沒有可重現錯誤的資料愛莫能助(聳肩
作者: Gjerry   2021-12-03 23:38:00
其實可以考慮用 split 切開 data frame 等用 lapply 處理完再合起來,對於不熟悉的人來說應該比較直覺
作者: locka (locka)   2021-12-04 00:06:00
G大 其實我覺得 lapply 也沒有很直觀耶XDDD
作者: chenwz (chen)   2021-12-04 09:19:00
因為group_by 分組後的列數跟原本資料對不起來,所以沒辦法直接給新欄位。可以重給一個df, 再join起來
作者: Gjerry   2021-12-04 15:30:00
不然用 for loop 也可以,一開始就學 dplyr 我覺得會有點卡卡的
作者: celestialgod (天)   2021-12-05 01:09:00
我覺得原PO一開始就寫對了 原PO要不要檢查一下資料?https://reurl.cc/2oqm5X不然試試看data.table

Links booklink

Contact Us: admin [ a t ] ucptt.com