[问题] 依变项分组的加总

楼主: 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