David: Got it! Thanks, again. Bruce ______________ Bruce Ratner PhD The Significant Statistician™ (516) 791-3544 Statistical Predictive Analytics -- www.DMSTAT1.com Machine-Learning Data Mining -- www.GenIQ.net
> On Apr 21, 2017, at 10:56 AM, David L Carlson <dcarl...@tamu.edu> wrote: > > You can rename the columns with colnames() before passing it to xtable. This > will let you use characters that data.frame would automatically convert. > > I don't see an easy way to center the columns when printing an html file. If > you are not making too many of these, you could open the .html file into a > WYSIWIG html editor such as BlueGriffon, make the changes and save the file. > If you have Microsoft Excel and Word, another fallback solution is to read > the .html file into Excel where you have a wide variety of styles. > > David C > > -----Original Message----- > From: BR_email [mailto:b...@dmstat1.com] > Sent: Thursday, April 20, 2017 4:31 PM > To: David L Carlson <dcarl...@tamu.edu>; r-help@r-project.org > Subject: Re: [R] Looking for a package to replace xtable > > 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-boun...@r-project.org] On Behalf Of BR_email >> Sent: Thursday, April 20, 2017 12:10 PM >> To: r-help@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@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@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.