[R] Looking for a package to replace xtable

Jeff Newmiller jdnewmil at dcn.davis.ca.us
Fri Apr 21 01:15:38 CEST 2017


Since you are generating html you can use html syntax.

You might also be interested in the ReportR package. 
-- 
Sent from my phone. Please excuse my brevity.

On April 20, 2017 2:30:43 PM PDT, BR_email <br at dmstat1.com> wrote:
>David:
>All is perfect, almost - after I ran your corrections.
>Is there a way I can have more control of the column names, i.e.,
>not be restricted to abbreviations headings, and center-justify?
>
>Thanks a lot, nice.
>Bruce
>
>  
>
>David L Carlson wrote:
>> #1 You can remove the rownames by adding the argument
>include.rownames=FALSE to print.xtable():
>>
>> print.xtable(DECILE_TABLE, type="html",file="DecileTable.html",
>include.rownames=FALSE)
>>
>> #2 Prevent data.frame from converting the first column to a factor
>and use NAs for the columns where you don't want totals:
>>
>> dec_mean_wt_R_nRDL <- cbind(DECILE, dec_mean_wt_R_nRD, Cum_Lift,
>stringsAsFactors=FALSE)
>> 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(c(colSums(dec_mean_wt_R_nRDL[ , 2:3]),
>rep(NA, 3)),nrow=1)))
>>
>> Now the table should print without totals in the last three columns
>and no rownames.
>>
>> attach is discouraged since it can lead to confusion when a variable
>name exists in the environment and in a data frame (or multiple data
>frames). It is easy to forget which version of the variable you are
>using. More typing, but less subject to confusion would be to use
>with(), eg:
>>
>> Cum_RespRate          <- with(dec_mean_wt_R_nR, (Cum_R/Cum_n)*100)
>>
>> This way it is always clear where Cum_R and Cum_n are coming from. In
>your code cum_R = Cum_R and cum_n = Cum_n so you could also use
>>
>> Cum_RespRate          <- cum_R/cum_n)*100
>>
>> -------------------------------------
>> David L Carlson
>> Department of Anthropology
>> Texas A&M University
>> College Station, TX 77840-4352
>>
>> -----Original Message-----
>> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of
>BR_email
>> Sent: Thursday, April 20, 2017 12:10 PM
>> To: r-help at r-project.org
>> Subject: [R] Looking for a package to replace xtable
>>
>> 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")
>>
>> ****
>>
>> --
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>>
>
>______________________________________________
>R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide
>http://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list