Just for reference, R's "preferred" way to handle printing is to create "classed" objects from a function that produces all the necessary information and have an appropriate "print" method, i.e. function, for that class to print it. R has several class object systems that can do this, including the basic S3 system. Spend some time with an R tutorial or two to learn more, as it's clear from your query that your R knowledge would benefit from such effort (though I suppose all of us could say the same).
Cheers, Bert On Sun, Aug 11, 2024 at 7:43 AM Steven Yen <st...@ntu.edu.tw> wrote: > > Thanks. Will try it. > > Have not tried it but I think the following may work: > > out$results<-NULL > > out$results$ei<-ap > > out$results$vi<-vap > > All I need is printing by returning out (unless I turn it off). And, > retrieve ap and vap as needed as shown above. Guess I need to read more > about invisible. > > On 8/11/2024 10:09 PM, Rui Barradas wrote: > > Às 09:51 de 11/08/2024, Steven Yen escreveu: > >> Hi > >> > >> In the following codes, I had to choose between printing (= TRUE) or > >> deliver something for grab (ei, vi). Is there a way to get both--that > >> is, to print and also have ei and vi for grab? Thanks. > >> > >> Steven > >> > >> ... > >> > >> out<-round(as.data.frame(cbind(ap,se,t,p)),digits) > >> out<-cbind(out,sig) > >> out<-out[!grepl(colnames(zx)[1],rownames(out)),] > >> if(printing){ > >> cat("\nAPPs of bivariate ordered probit probabilities", > >> "\nWritten by Steven T. Yen (Last update: 08.11.24)", > >> "\ny1.level=", y1.level, > >> " y2.level=", y2.level, > >> "\njoint12 =", joint12, > >> "\nmarg1 =", marg1, > >> "\nmarg2 =", marg2, > >> "\ncond12 =", cond12, > >> "\ncond21 =", cond21, > >> "\nCovariance matrix:",vb.method, > >> "\nWeighted =", weighted, > >> "\nAt means =", mean, > >> "\nProb x 100 =", times100, > >> "\ntesting =" , testing, > >> "\nuse_bb_and_vbb = ",use_bb_and_vbb, > >> "\nsample size =", length(y1),"\n") > >> if (!resampling) cat("\nSEs by delta method","\n") > >> if (resampling) cat("\nSEs K-R resampling with",ndraws,"draws\n") > >> return(out) > >> } else { > >> invisible(list("ei"=ap,"vi"=vap)) > >> > >> ______________________________________________ > >> 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. > > > > Hello, > > > > Maybe change the end of the code to return a bigger list. > > > > > > ll <- list(out = out, ei = ap, vi = vap) > > return(ll) > > } else { > > invisible(list("ei"=ap,"vi"=vap)) > > > > > > Hope this helps, > > > > Rui Barradas > > > > > > > > ______________________________________________ > 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.