I've attached a modification of your script file (called .txt so it doesn't get stripped). See if this does what you want.
David C -----Original Message----- From: Bruce Ratner PhD [mailto:b...@dmstat1.com] Sent: Friday, April 21, 2017 3:46 PM To: David L Carlson <dcarl...@tamu.edu> Cc: r-help@r-project.org Subject: Re: [R] Looking for a package to replace xtable David: Correction: I do need a data frame because from the order Response column I create a data frame as per all my calculated columns, yielding the five column decile table. I used your latest corrections but something buggy is a happenin'. 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 4:25 PM, Bruce Ratner PhD <b...@dmstat1.com> wrote: > > David: > Response=rbinom(50,1,0.2), and yhat=runif(50) are simulating the output of a > say logistic model, where Response is actual 0-1 responses, and yhat is the > predicted > response variable. > I usually resample the original data to get some noise out of the data. I > find it valuable if I can resample from a large sample than the original. > (I know this is viewed by some as unorthodox.) > > Your point: I only need Response as a column vector. > That said, what would you alter, please? > Thanks for your time. > Regards, > 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 3:43 PM, David L Carlson <dcarl...@tamu.edu> wrote: >> >> You have an issue at the top with >> >> Resp <- data.frame(Response=rbinom(50,1,0.2), yhat=runif(50)) >> Resp <- Resp[order(Response$yhat,decreasing=TRUE),] >> >> Since Response$yhat has not been defined at this point. Presumably you want >> >> Resp <- Resp[order(Resp$yhat,decreasing=TRUE),] >> >> The main issue is that you have a variable Response that is located in a >> data frame called ResponseX10. >> >> In creating cum_R you need >> >> cum_R <- with(ResponseX10, cumsum(Response)) >> >> then dec_mean >> >> dec_mean <- with(ResponseX10, aggregate(Response, by=list(decc), mean)) >> >> then dd >> >> dd <- with(ResponseX10, cbind(Response, dd_)) >> >> >> You might consider if Response really needs to be inside a data frame that >> consists of a single column (maybe you do if you need to keep track of the >> row numbers). If you just worked with the vector Response, you would not >> have to use with() or attach(). >> >> I'm not sure what the first few lines of your code are intended to do. You >> choose random binomial values and uniform random values and then order the >> first by the second. But rbinom() is selecting random values so what is the >> purpose of randomizing random values? If the real data consist of a vector >> of 1's and 0's and those need to be randomized, sample(data) will do it for >> you. >> >> Then those numbers are replicated 10 times. Why not just select 500 values >> using rbinom() initially? >> >> >> David C >> >> >> -----Original Message----- >> From: BR_email [mailto:b...@dmstat1.com] >> Sent: Friday, April 21, 2017 1:22 PM >> To: David L Carlson <dcarl...@tamu.edu>; r-help@r-project.org >> Subject: Re: [R] Looking for a package to replace xtable >> >> David: >> I tried somethings and got a little more working. >> Now, I am struck at last line provided: "dec_mean <- >> aggregate(Response ~ decc, dd, mean)" >> Any help is appreciated. >> Bruce >> >> ***** >> Resp <- data.frame(Response=rbinom(50,1,0.2), yhat=runif(50)) >> Resp <- Resp[order(Response$yhat,decreasing=TRUE),] >> >> ResponseX10 <- do.call(rbind, replicate(10, Resp, simplify=FALSE)) >> str(ResponseX10) >> >> ResponseX10 <- ResponseX10[order(ResponseX10$yhat,decreasing=TRUE),] >> >> str(ResponseX10) >> head(ResponseX10) >> >> ResponseX10[[2]] <- NULL >> ResponseX10 <- data.frame(ResponseX10) >> str(ResponseX10) >> >> cum_R <- cumsum(Response) >> cum_R >> >> sam_size <- n
# Resp <- data.frame(Response=rbinom(50,1,0.2), yhat=runif(50)) # Resp <- Resp[order(Resp$yhat,decreasing=TRUE),] # ResponseX10 <- do.call(rbind, replicate(10, Resp, simplify=FALSE)) # str(ResponseX10) # ResponseX10 <- ResponseX10[order(ResponseX10$yhat,decreasing=TRUE),] # str(ResponseX10) # head(ResponseX10) # ResponseX10[[2]] <- NULL # ResponseX10 <- data.frame(ResponseX10) # str(ResponseX10) # Draw 50 random numbers and replicate 10 times Response <- rbinom(50, 1, 0.2)[rep(1:50, 10)] yhat <- runif(50)[rep(1:50, 10)] # Sort Response by yhat Response <- Response[order(yhat, decreasing=TRUE)] cum_R <- cumsum(Response) cum_R # sam_size <- nrow(ResponseX10) sam_size <- length(Response) sam_size # cum_n <- seq(1:1,sam_size) cum_n <- seq(1, sam_size) cum_n # wt <- rep(c(1), times=sam_size) wt <- rep(1, times=sam_size) cum_wt <- cumsum(wt) cum_wt dec <- (cum_n/sam_size) decc <- floor((cum_n*10)/(sam_size+1)) str(decc) # 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" dd <- data.frame(Response, cum_R, sam_size, cum_wt, cum_n, decc) dec_mean <- aggregate(Response ~ decc, dd, mean) dec_mean
______________________________________________ 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.