Hi, I'm trying to take a function from a workspace download provided in a stats textbook book, so I have it in my workspace to use all the time. I opened the workspace and typed the names of the two functions to get the code that makes them up: ------------------------------------------------------------------------------------- > resample function(d, size, replace=TRUE,prob=NULL,within=NULL) { if (!is.null(within)) return( resample.within(d, within,replace=replace) ) if (is.null(dim(d))) { # it's just a vector if (missing(size)) size=length(d) return( d[ sample(1:length(d),size, replace=replace, prob=prob)]) } else { if (missing(size)) size = dim(d)[1]; inds = sample(1:(dim(d))[1], size, replace=replace, prob=prob) if (is.data.frame(d) | is.matrix(d)) { return(d[inds,]); } else { return(d[inds]); } } } ------------------------------------------------------------------------------------- > do function(n=10){ as.repeater(n) } ------------------------------------------------------------------------------------- > as.repeater function(n=5){ foo = list(n=n) class(foo) = 'repeater' return(foo) } Then I made the functions in my workspace by choosing the name (same name), and then "=" and then copied and pasted the function, beginning with function( and ending with the final }'s. But when I try to do the following in my workspace afterwards: samps = do(500)* coef(lm(MIC.~1+Challenge+Cleaner+Replicate, data=resample(ecoli))) sd(samps) I get an error: Error in do(500) * coef(lm(MIC. ~ 1 + Challenge + Cleaner + Replicate, : non-numeric argument to binary operator. But in the workspace that comes with that book, I get a decent output: sd(samps) (Intercept) Challenge CleanerGarlic ReplicateFirst ReplicateFourth 3.9455401 0.7178385 1.6830641 5.4564926 5.4320998 ReplicateSecond ReplicateThird 5.3895562 5.5422622 Is there anybody out there who know a lot more about programming functions in R than I do, that might know why this is giving me the error? I don't understand why one workspace would accept the model formula, when the other give me the non-numeric argument to binary vector, the only vector that's not numerical is Replicate, but I don't that's what the error is talking about. Thanks, Ben Ward.
It seems that the textbook workspace you are using as a method definition for * for class repeater. Load the workspace and try methods(`*`) If you get something like '*.repeater' this suspicion is confirmed On 1/4/2011 11:36 AM, Ben Ward wrote:> Hi, > > I'm trying to take a function from a workspace download provided in a > stats textbook book, so I have it in my workspace to use all the time. > > I opened the workspace and typed the names of the two functions to get > the code that makes them up: > ------------------------------------------------------------------------------------- > >> resample > function(d, size, replace=TRUE,prob=NULL,within=NULL) { > if (!is.null(within)) return( resample.within(d, > within,replace=replace) ) > if (is.null(dim(d))) { > # it's just a vector > if (missing(size)) size=length(d) > return( d[ sample(1:length(d),size, replace=replace, prob=prob)]) > } > else { > if (missing(size)) size = dim(d)[1]; > inds = sample(1:(dim(d))[1], size, replace=replace, prob=prob) > if (is.data.frame(d) | is.matrix(d)) { > return(d[inds,]); > } else { > return(d[inds]); > } > } > } > ------------------------------------------------------------------------------------- > >> do > function(n=10){ > as.repeater(n) > } > ------------------------------------------------------------------------------------- > >> as.repeater > function(n=5){ > foo = list(n=n) > class(foo) = 'repeater' > return(foo) > } > > Then I made the functions in my workspace by choosing the name (same > name), and then "=" and then copied and pasted the function, beginning > with function( and ending with the final }'s. > > But when I try to do the following in my workspace afterwards: > > samps = do(500)* coef(lm(MIC.~1+Challenge+Cleaner+Replicate, > data=resample(ecoli))) > sd(samps) > > I get an error: > Error in do(500) * coef(lm(MIC. ~ 1 + Challenge + Cleaner + Replicate, : > non-numeric argument to binary operator. > > But in the workspace that comes with that book, I get a decent output: > > sd(samps) > (Intercept) Challenge CleanerGarlic ReplicateFirst > ReplicateFourth > 3.9455401 0.7178385 1.6830641 5.4564926 > 5.4320998 > ReplicateSecond ReplicateThird > 5.3895562 5.5422622 > > Is there anybody out there who know a lot more about programming > functions in R than I do, that might know why this is giving me the > error? I don't understand why one workspace would accept the model > formula, when the other give me the non-numeric argument to binary > vector, the only vector that's not numerical is Replicate, but I don't > that's what the error is talking about. > > Thanks, > Ben Ward. > > ______________________________________________ > R-help at r-project.org mailing list > 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. >
(1) I know that \n when used in cat, e.g. cat("\n") produces a line feed (i.e. skips to the next line). Is there any escape sequence that will go to the top of the next page? (2) I know that control L will clear the console. Is there an equivalent function or other means that can be used in R code to clear the console? Thanks, John John David Sorkin M.D., Ph.D. Chief, Biostatistics and Informatics University of Maryland School of Medicine Division of Gerontology Baltimore VA Medical Center 10 North Greene Street GRECC (BT/18/GR) Baltimore, MD 21201-1524 (Phone) 410-605-7119 (Fax) 410-605-7913 (Please call phone number above prior to faxing) Confidentiality Statement: This email message, including any attachments, is for th...{{dropped:6}}
On Tue, Jan 4, 2011 at 9:48 AM, John Sorkin <jsorkin at grecc.umaryland.edu> wrote:> (1) I know that \n when used in cat, e.g. cat("\n") produces a line feed (i.e. skips to the next line). Is there any escape sequence that will go to the top of the next page? > (2) I know that control L will clear the console. Is there an equivalent function or other means that can be used in R code to clear the console? >Its always a good idea to look through the archives before posting. I had posted this 5 years ago. It uses RDCOMClient: http://www.mail-archive.com/r-help at stat.math.ethz.ch/msg57802.html and also posted a second version using rcom in the same thread. -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com
Possibly Parallel Threads
- Resampling to find Confidence intervals
- Remove duplicates from a data frame but with some special requirements
- stats 'dist' euclidean distance calculation
- combinatorial programming problem
- Extract cell of many values from dataframe cells and sample from them.