#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.