想請問我有一個檔案資料如下
想把相同日期同樣項目加總變成這樣
我寫了一段R,是先用日期篩選在一一加總,但是如果天數多的時候感覺不太適用,不知道各位高手是不是有更簡單的方式呢?謝謝
dtakk_done_date <- dtak1[,c(3,15:length(names(dtak1)))]
a<-"2019-12-19"
b<-"2019-12-20"
c<-"2019-12-21"
d<-"2019-12-22"
dtakk_done_date2<-dtakk_done_date%>%filter(dtakk_done_date$服務日期==a)
s1<-colSums(dtakk_done_date2[-1], na.rm = TRUE)
dtakk_done_date3<-dtakk_done_date%>%filter(dtakk_done_date$服務日期==b)
s2<-colSums(dtakk_done_date3[-1], na.rm = TRUE)
dtakk_done_date4<-dtakk_done_date%>%filter(dtakk_done_date$服務日期==c)
s3<-colSums(dtakk_done_date4[-1], na.rm = TRUE)
dtakk_done_date5<-dtakk_done_date%>%filter(dtakk_done_date$服務日期==d)
s4<-colSums(dtakk_done_date5[-1], na.rm = TRUE)
s_total<-cbind(s1,s2,s3,s4)
colnames(s_total)<-c(a,b,c,d)
library(reshape2)
yc.data =
data.frame(date=c("2012.1.1","2012.1.2","2012.1.3","2012.1.4","2012.1.5",
"2012.1.6","2012.1.7","2012.1.1","2012.1.2","2012.1.3","2012.1.4","2012.1.5",
"2012.1.6","2012.1.7"),
c0=c(0,1,0,1,1,1,0,0,1,0,1,0,0,1),
c1=c(1,1,1,1,0,0,0,0,1,0,1,0,0,1),
c2=c(1,1,0,1,0,0,0,1,1,0,1,0,1,0));yc.data
yc.data2 = melt(yc.data,id ="date")
yc.data2 = yc.data2[which(yc.data2$value == "1"),]
yc.data2 = xtabs(~date + variable , yc.data2)
以後這種問題...給個簡單的資料別人會比較有興趣去做測試
不然我這樣打完你也要改欄位名稱,麻煩到你也是降低別人code的意願
然後我現在才看到,你應該已經解決了,ㄅ欠,但我還是順手練一下筆哈哈
第一行先讓資料降維度,然後僅保留true值,最後做簡單的統計
方法很多,參考下吧!