[R] additions to r pivot table

arun smartpink111 at yahoo.com
Thu Feb 27 00:47:22 CET 2014


Hi Burnette,

Try:
indx <- grep("\\bMW\\b|\\bOT\\b|\\bposter\\b|\\brecords\\b", rownames(res3))
indx1 <- grep("Grand Total",rownames(res3))


res3R
<-  
as.data.frame(matrix(NA,ncol=ncol(res3),nrow=nrow(res3),dimnames= 
list(rownames(res3),c("rate of Count of Case ID", "rate of Sum of 
BW_Due", "rate of Sum of BW_ATP", "rate of Sum of EEs_Rep"))))
res3R[c(indx,indx1),] <- t(t(res3[c(indx,indx1),])/unlist(res3[indx1,]))
indx2 <- as.vector(table(gsub("\\_.*","",rownames(res3[-c(indx,indx1),]))))
#or
#indx2 <- res3[indx,1]

res3R[-c(indx,indx1),] <- res3[-c(indx,indx1),]/unlist(res3[rep(indx,indx2),])
res4 <- cbind(res3,res3R)[,rep(seq(1,8,by=4),4) + rep(seq(0,3),each=2)]

head(res4,2)
#       Count of Case ID rate of Count of Case ID Sum of BW_Due
#MW                    2                      0.4        168.11
#MW_tip                1                      0.5         55.76
#       rate of Sum of BW_Due Sum of BW_ATP rate of Sum of BW_ATP Sum of EEs_Rep
#MW                 0.7202348        155.86             0.7953664             29
#MW_tip             0.3316876         55.76             0.3577570              9
#       rate of Sum of EEs_Rep
#MW                  0.5370370
#MW_tip              0.3103448

A.K.




On Wednesday, February 26, 2014 12:57 PM, "Crombie, Burnette N" <bcrombie at utk.edu> wrote:


A.K., I’m struggling with adding columns that calculate rate in the dataset you helped me with earlier:


Is this something I should resubmit to Rhelp as a new question?  Thanks!



FLSAdata <- data.frame(CaseID = c(1881, 1882, 1883, 1884, 1885),
                  ViolationDesc = c("records", "poster", "MW", "OT", "MW"),
                  ReasonDesc = c("", "", "tip", "bonus", "uniform"),
                  BW_Due = c(0, 0, 55.76, 65.30, 112.35),
                  BW_ATP = c(0, 0, 55.76, 40.10, 100.10),
                  EEs_Rep = c(4, 11, 9, 10, 20))

FLSAdata$CaseID <- factor(FLSAdata$CaseID) FLSAdata [FLSAdata ==""] <- NA 

library(reshape2)
FLSAdata_melt
<- melt(FLSAdata,id=c("CaseID", "ViolationDesc", 
"ReasonDesc"),measure=c("BW_Due", "BW_ATP", "EEs_Rep"), na.rm=FALSE)
res1 <- acast(FLSAdata_melt, ViolationDesc + ReasonDesc ~ variable, sum, margins=TRUE)[,-4]
res2
<- within(as.data.frame(res1),`Count of Case ID` <- 
dcast(FLSAdata_melt, ViolationDesc + ReasonDesc ~ variable, length, 
margins=TRUE)[,3])[,c(4,1:3)] colnames(res2)[2:4] <- paste("Sum 
of",colnames(res2)[2:4]) rownames(res2)[length(rownames(res2))] <- 
"Grand Total"
indx <- grepl("all",rownames(res2))
ord1
<- 
unlist(tapply(seq_len(nrow(res2)),list(cumsum(c(TRUE,diff(indx)<0))),FUN=function(x)
c(tail(x,1),head(x,-1)) ),use.names=FALSE)
res3 <- res2[ord1,]
rownames(res3) <- gsub("\\_\\(all\\)","",rownames(res3))

res3

Burnette Crombie
Construction Industry Research & Policy Center (CIRPC)
219 Stokely Management Center
The University of Tennessee, Knoxville  37996
ph 865.974.4422
fax 865.545.4193
http://cirpc.bus.utk.edu



More information about the R-help mailing list