[R] Looking for a package to replace xtable
BR_email
br at dmstat1.com
Thu Apr 20 19:09:40 CEST 2017
R-helper:
Below, code for generating a decile table.
I am using the xtable package, but it is not quite right for the output.
Issue #1. xtable inserts an unwanted column, before the first derived
column DECILE
Issue #2. In the last line "Total" I manually sum all columns, even
though I only want the sums for second and third columns.
If I calculate only second and third columns, the remaining columns
would have NAs.
Either scenario is not desired.
Any suggestions, would be appreciated, for a package that addresses
issue #1,
and has an option for summing the desired two columns.
Lastly, I read that one should rarely use "attach()", but if I don't the
program will not run.
An explanation of why I need attach() would also be appreciated.
Thanks.
Bruce
****
Response <- data.frame(Response=rbinom(50,1,0.2), yhat=runif(50))
Response <- Response[order(Response$yhat,decreasing=TRUE),]
Response[[2]] <- NULL
cum_R <- cumsum(Response)
sam_size <- nrow(Response)
cum_n <- seq(1:1,sam_size)
wt <- rep(c(1), times=sam_size)
cum_wt <- cumsum(wt)
dec <- (cum_n/sam_size)
decc <- floor((cum_n*10)/(sam_size+1))
dec_mean <- aggregate(Response, by=list(decc), mean)
dd_ <- data.frame(cum_R, sam_size, cum_wt, cum_n, decc)
dd <- cbind(Response, dd_)
names(dd)[2] <- "cum_R"
dec_mean <- aggregate(Response ~ decc, dd, mean)
wt <- rep(c(1), times=sam_size)
cum_wt <- aggregate(wt ~ decc, dd, sum)
cum_R <- aggregate(Response ~ decc, dd, sum)
dec_mean_wt <- cbind(dec_mean, cum_wt)
dec_mean_wt <- dec_mean_wt[-3]
dec_mean_wt_R <- cbind(dec_mean_wt, cum_R)
dec_mean_wt_R <- dec_mean_wt_R[-4]
colnames(dec_mean_wt_R) <- c("Decile", "Resp_Rate", "No_Inds",
"No_Resp")
dec_mean_wt_R <- dec_mean_wt_R[,c(1,3,4,2)]
cum_n <- dec_mean_wt_R[2]
cum_n <- cumsum(cum_n)
cum_R <- dec_mean_wt_R[3]
cum_R <- cumsum(cum_R)
dec_mean_wt_R_nR <- cbind(dec_mean_wt_R, cum_n, cum_R)
colnames(dec_mean_wt_R_nR) <-
c("Decile", "No_Inds", "No_Resp", "RespRate",
"Cum_n", "Cum_R")
dec_mean_wt_R_nR
attach(dec_mean_wt_R_nR)
Cum_RespRate <- (Cum_R/Cum_n)*100
options(digits=4)
Decile_RespRate <- (No_Resp/No_Inds)
dec_mean_wt_R_nRD <- cbind(dec_mean_wt_R_nR, Cum_RespRate, Decile_RespRate)
avg_RR <- dec_mean_wt_R_nRD[10,7]
Cum_Lift <- (Cum_RespRate/avg_RR)*100
DECILE <- c("top","2","3","4","5","6","7","8","9","bot")
dec_mean_wt_R_nRDL <- cbind(DECILE, dec_mean_wt_R_nRD, Cum_Lift)
dec_mean_wt_R_nRDL <- dec_mean_wt_R_nRDL[,c(1,3,4,9,8,10)]
total_line<-cbind(DECILE="Total",
as.data.frame(matrix(colSums(dec_mean_wt_R_nRDL[-1]),nrow=1)))
names(total_line)<-names(dec_mean_wt_R_nRDL)
dec_mean_wt_R_nRDLT<-rbind(dec_mean_wt_R_nRDL,total_line)
decile_table <- dec_mean_wt_R_nRDLT
decile_table
#Install the xtable package: install.packages("xtable")
#Load the xtable package:
library(xtable)
DECILE_TABLE <-xtable(decile_table)
DECILE_TABLE
print.xtable(DECILE_TABLE, type="html",file="C:/R_Data/DecileTable.html")
****
--
More information about the R-help
mailing list