[R] Beginner help about output in R
Nordlund, Dan (DSHS/RDA)
NordlDJ at dshs.wa.gov
Fri Nov 9 01:09:57 CET 2012
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Jean V Adams
> Sent: Thursday, November 08, 2012 3:52 PM
> To: nicolapon
> Cc: r-help at r-project.org
> Subject: Re: [R] Beginner help about output in R
>
> Nicolas,
>
> Maybe something like this would work for you. Put all of your x values
> in
> a list (or a vector, if your x values are scalars). Use sapply to loop
> through all of your x values, applying the value1() and value2()
> functions, and saving the results in a data frame. Then write the data
> frame to a file.
>
> allofmyxs <- list(x1=48, x2=21, x3=1.9)
> mydf <- as.data.frame(t(sapply(allofmyxs, function(x) c(value1(x),
> value2(x)))))
> write.table(mydf, file=output.txt)
>
> Jean
>
>
>
> nicolapon <niqo at msn.com> wrote on 11/08/2012 03:14:51 PM:
> >
> > Dear R experts,
> >
> > I am a beginner with R and I have a question regarding the output of
> a
> > function.
> >
> > Basically, I created 2 functions, value1 and value2, that calculate
> two
> > values, and I would like to print those two values to an output
> datafile. I
> > tryed the following function:
> >
> > function (x)
> {write.table(data.frame(value1(x),value2(x)),file=output.txt)}
> >
> > My problem is that I would like to calculate those values for
> different
> > values of x and to get one line in the output file per value.
> > When I use this function for the second time, it erases the value of
> the
> > first try, etc. How can I proceed so that I will add a new line to
> the
> > output at every step instead of deleting the previous line?
> >
> > Thank you very much for your answers!
> >
> > Nicolas
>
That is the approach I was going to suggest. Put your x values into a vector, x, and then something like this.
I just made up some functions for computing 2 values, then create an x vector of ten values, then a function for computing and writing the values (trying to follow the OP's original request as closely as possible)
# makeup some functions
value1 <- function (z) 1/(1+exp(z))
value2 <- function (z) 1/z^.5
# create some data values
x <- runif(10)
# define write function
myWrite <- function(y,file) write.table(data.frame(value1=value1(y),value2=value2(y)),file)
# call the function t calculate and write out the values
myWrite(x,"c:/tmp/test.txt")
Hope this is helpful,
Dan
Daniel Nordlund
Olympia, WA 98504-5204
More information about the R-help
mailing list