[R] Printout and saved results
Richard O'Keefe
r@oknz @end|ng |rom gm@||@com
Tue Mar 26 04:24:19 CET 2024
Not clear what you mean by "saved".
If you call a function and the result is printed, the result is
remembered for a wee while in
the variable .Last.value, so you can do
> function.with.interesting.result(.......)
> retained.interesting.result <- .Last.value
or even
> .Last.value -> retained.interesting.result
If you know before you start writing the expression that you want to
save the value,
you can wrap the assignment in parentheses, making it an expression:
> (retained.interesting.result <- function.with.interesting.result(......))
On Tue, 26 Mar 2024 at 15:03, Steven Yen <styen using ntu.edu.tw> wrote:
>
> How can I have both printout and saved results at the same time.
>
> The subroutine first return "out" and the printout gets printed, but not
> saved.
>
> I then run the "invisible" line. Results got saved and accessible but no
> printout.
>
> How can I have both printout and also have the results saved? Thank you!
>
> > dstat4 <- function(data,digits=3){
> + Mean <- apply(data,2,mean,na.rm=TRUE)
> + Std.dev <- apply(data,2,sd, na.rm=TRUE)
> + Min <- apply(data,2,min,na.rm=TRUE)
> + Max <- apply(data,2,max,na.rm=TRUE)
> + Obs <- dim(data)[1]
> + out <-round(cbind(Mean,Std.dev,Min,Max,Obs),digits)
> + out
> + # invisible(list(Mean=Mean,Std.dev=Std.dev,Min=Min,Max=Max))
> + }
> > x1<-rnorm(n=5,mean=5, sd=1)
> > x2<-rnorm(n=5,mean=10,sd=2)
> > w<-rnorm(n=5,mean=2,sd=0.3)
> > mydata<-data.frame(cbind(x1,x2))
> > v<-dstat4(mydata); v
> Mean Std.dev Min Max Obs
> x1 5.000 0.922 3.900 6.282 5
> x2 10.769 1.713 9.209 13.346 5
> > v$Mean
> Error in v$Mean : $ operator is invalid for atomic vectors
> > dstat4 <- function(data,digits=3){
> + Mean <- apply(data,2,mean,na.rm=TRUE)
> + Std.dev <- apply(data,2,sd, na.rm=TRUE)
> + Min <- apply(data,2,min,na.rm=TRUE)
> + Max <- apply(data,2,max,na.rm=TRUE)
> + Obs <- dim(data)[1]
> + out <-round(cbind(Mean,Std.dev,Min,Max,Obs),digits)
> + # out
> + invisible(list(Mean=Mean,Std.dev=Std.dev,Min=Min,Max=Max))
> + }
>
> > v<-dstat4(mydata)
> > v$Mean
> x1 x2
> 4.233051 9.564454
>
> ______________________________________________
> R-help using 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.
More information about the R-help
mailing list