Ok so if I have a function: functest<-function(x){ a<-x+1 b<-x+2 c<-x+3 paste(a) paste(b) paste(c) } Now I know I can do cat(), or return() on one of them but if I was to run the function with any number, how could I create objects to save so I could do, I am wondering if I have more than one object within my function. functest$a and get the result. I hope this is clear. ------------------------------------------- Joe King, M.A. Ph.D. Student University of Washington - Seattle 206-913-2912 <mailto:jp@joepking.com> jp@joepking.com ------------------------------------------- "Never throughout history has a man who lived a life of ease left a name worth remembering." --Theodore Roosevelt [[alternative HTML version deleted]]
Hi Joe, You can just put the results into a named list, for example: functest<-function(x){ a <- x + 1 b <- x + 2 c <- x + 3 results <- list("a" = a, "b" = b, "c" = c) return(results) } functest(1)$a It is important to name the list or you would have to refer to it as: functest(1)[[1]] for the first element and so on. HTH, Josh On Thu, Oct 7, 2010 at 11:30 PM, Joe P King <jp at joepking.com> wrote:> Ok so if I have a function: > > > > functest<-function(x){ > > ? ? ? ? ? ?a<-x+1 > > ? ? ? ? ? ?b<-x+2 > > ? ? ? ? ? ?c<-x+3 > > paste(a) > > paste(b) > > paste(c) > > } > > > > Now I know I can do cat(), or return() on one of them but if I was to run > the function with any number, how could I create objects to save so I could > do, I am wondering if I have more than one object within my function. > > > > functest$a and get the result. I hope this is clear. > > > > ------------------------------------------- > > Joe King, M.A. > > Ph.D. Student > > University of Washington - Seattle > > 206-913-2912 > > ?<mailto:jp at joepking.com> jp at joepking.com > > ------------------------------------------- > > "Never throughout history has a man who lived a life of ease left a name > worth remembering." --Theodore Roosevelt > > > > > ? ? ? ?[[alternative HTML version deleted]] > > ______________________________________________ > 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. >-- Joshua Wiley Ph.D. Student, Health Psychology University of California, Los Angeles http://www.joshuawiley.com/
Thank you, well I have a table I am wanting to print, yet I want it in a matrix but it has different number of columns, so if I had a table of 1 1 1 2 2 Is there a way to get that table to print out as an object without having to put an NA or 0 in the last cell? Joe King 206-913-2912 jp at joepking.com "Never throughout history has a man who lived a life of ease left a name worth remembering." --Theodore Roosevelt -----Original Message----- From: Joshua Wiley [mailto:jwiley.psych at gmail.com] Sent: Thursday, October 07, 2010 11:43 PM To: Joe P King Cc: r-help at r-project.org Subject: Re: [R] saving object function Hi Joe, You can just put the results into a named list, for example: functest<-function(x){ a <- x + 1 b <- x + 2 c <- x + 3 results <- list("a" = a, "b" = b, "c" = c) return(results) } functest(1)$a It is important to name the list or you would have to refer to it as: functest(1)[[1]] for the first element and so on. HTH, Josh On Thu, Oct 7, 2010 at 11:30 PM, Joe P King <jp at joepking.com> wrote:> Ok so if I have a function: > > > > functest<-function(x){ > > a<-x+1 > > b<-x+2 > > c<-x+3 > > paste(a) > > paste(b) > > paste(c) > > } > > > > Now I know I can do cat(), or return() on one of them but if I was to > run the function with any number, how could I create objects to save > so I could do, I am wondering if I have more than one object within my function. > > > > functest$a and get the result. I hope this is clear. > > > > ------------------------------------------- > > Joe King, M.A. > > Ph.D. Student > > University of Washington - Seattle > > 206-913-2912 > > <mailto:jp at joepking.com> jp at joepking.com > > ------------------------------------------- > > "Never throughout history has a man who lived a life of ease left a > name worth remembering." --Theodore Roosevelt > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. >-- Joshua Wiley Ph.D. Student, Health Psychology University of California, Los Angeles http://www.joshuawiley.com/
I did what you said and it worked perfectly, but I have tried to save some of my objects using paste because I want to limit the number of significant digits and one matrix has some empty spaces I use NA in, and I want those left blank, but when I paste into an object it doesn?t hold that formatting, any suggestions? How can I have a matrix that isn?t full to have empty spaces? If I just tell it " ", it turns the entire matrix into characters. Joe King 206-913-2912 jp at joepking.com "Never throughout history has a man who lived a life of ease left a name worth remembering." --Theodore Roosevelt -----Original Message----- From: Joshua Wiley [mailto:jwiley.psych at gmail.com] Sent: Thursday, October 07, 2010 11:43 PM To: Joe P King Cc: r-help at r-project.org Subject: Re: [R] saving object function Hi Joe, You can just put the results into a named list, for example: functest<-function(x){ a <- x + 1 b <- x + 2 c <- x + 3 results <- list("a" = a, "b" = b, "c" = c) return(results) } functest(1)$a It is important to name the list or you would have to refer to it as: functest(1)[[1]] for the first element and so on. HTH, Josh On Thu, Oct 7, 2010 at 11:30 PM, Joe P King <jp at joepking.com> wrote:> Ok so if I have a function: > > > > functest<-function(x){ > > a<-x+1 > > b<-x+2 > > c<-x+3 > > paste(a) > > paste(b) > > paste(c) > > } > > > > Now I know I can do cat(), or return() on one of them but if I was to > run the function with any number, how could I create objects to save > so I could do, I am wondering if I have more than one object within my function. > > > > functest$a and get the result. I hope this is clear. > > > > ------------------------------------------- > > Joe King, M.A. > > Ph.D. Student > > University of Washington - Seattle > > 206-913-2912 > > <mailto:jp at joepking.com> jp at joepking.com > > ------------------------------------------- > > "Never throughout history has a man who lived a life of ease left a > name worth remembering." --Theodore Roosevelt > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. >-- Joshua Wiley Ph.D. Student, Health Psychology University of California, Los Angeles http://www.joshuawiley.com/
Hi Joe, There is an important distinction between working with data and presenting data. You do not want to change or get rid of the missing values in the actual data. Believe it or not, this buys you something important. Since appearance only matters for presentation, you can fudge what the data is, and it is fine if it is character data _for printing_. Here is one possibility where I define a custom printing function (uninventively, myprinter() ): # Some data dat <- matrix(c(1:8, NA), ncol = 3) # Define a function that removes row and column names, changes NA values to "" # and prints the matrix without quotes myprinter <- function(x) { dat <- x dimnames(dat) <- list(rep("", nrow(x)), rep("", ncol(x))) dat[is.na(dat)] <- "" noquote(format(dat, justify="right")) } myprinter(dat) Ultimately your original data is unchanged, but you get some nice output. HTH, Josh On Fri, Oct 8, 2010 at 6:42 PM, Joe P King <jp at joepking.com> wrote:> I did what you said and it worked perfectly, but I have tried to save some of my objects using paste because I want to limit the number of significant digits and one matrix has some empty spaces I use NA in, and I want those left blank, but when I paste into an object it doesn?t hold that formatting, any suggestions? How can I have a matrix that isn?t full to have empty spaces? If I just tell it " ", it turns the entire matrix into characters. > > Joe King > 206-913-2912 > jp at joepking.com > "Never throughout history has a man who lived a life of ease left a name worth remembering." --Theodore Roosevelt > > > > -----Original Message----- > From: Joshua Wiley [mailto:jwiley.psych at gmail.com] > Sent: Thursday, October 07, 2010 11:43 PM > To: Joe P King > Cc: r-help at r-project.org > Subject: Re: [R] saving object function > > Hi Joe, > > You can just put the results into a named list, for example: > > functest<-function(x){ > ?a <- x + 1 > ?b <- x + 2 > ?c <- x + 3 > ?results <- list("a" = a, "b" = b, "c" = c) > ?return(results) > } > > functest(1)$a > > It is important to name the list or you would have to refer to it as: > functest(1)[[1]] ?for the first element and so on. > > HTH, > > Josh > > On Thu, Oct 7, 2010 at 11:30 PM, Joe P King <jp at joepking.com> wrote: >> Ok so if I have a function: >> >> >> >> functest<-function(x){ >> >> ? ? ? ? ? ?a<-x+1 >> >> ? ? ? ? ? ?b<-x+2 >> >> ? ? ? ? ? ?c<-x+3 >> >> paste(a) >> >> paste(b) >> >> paste(c) >> >> } >> >> >> >> Now I know I can do cat(), or return() on one of them but if I was to >> run the function with any number, how could I create objects to save >> so I could do, I am wondering if I have more than one object within my function. >> >> >> >> functest$a and get the result. I hope this is clear. >> >> >> >> ------------------------------------------- >> >> Joe King, M.A. >> >> Ph.D. Student >> >> University of Washington - Seattle >> >> 206-913-2912 >> >> ?<mailto:jp at joepking.com> jp at joepking.com >> >> ------------------------------------------- >> >> "Never throughout history has a man who lived a life of ease left a >> name worth remembering." --Theodore Roosevelt >> >> >> >> >> ? ? ? ?[[alternative HTML version deleted]] >> >> ______________________________________________ >> 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. >> > > > > -- > Joshua Wiley > Ph.D. Student, Health Psychology > University of California, Los Angeles > http://www.joshuawiley.com/ > > ______________________________________________ > 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. >-- Joshua Wiley Ph.D. Student, Health Psychology University of California, Los Angeles http://www.joshuawiley.com/
That?s what I was wanting was nice output, I suppose I framed my query wrong, but this is what I wanted! Thank you. Joe King 206-913-2912 jp at joepking.com "Never throughout history has a man who lived a life of ease left a name worth remembering." --Theodore Roosevelt -----Original Message----- From: Joshua Wiley [mailto:jwiley.psych at gmail.com] Sent: Friday, October 08, 2010 7:17 PM To: Joe P King Cc: r-help at r-project.org Subject: Re: [R] saving object function Hi Joe, There is an important distinction between working with data and presenting data. You do not want to change or get rid of the missing values in the actual data. Believe it or not, this buys you something important. Since appearance only matters for presentation, you can fudge what the data is, and it is fine if it is character data _for printing_. Here is one possibility where I define a custom printing function (uninventively, myprinter() ): # Some data dat <- matrix(c(1:8, NA), ncol = 3) # Define a function that removes row and column names, changes NA values to "" # and prints the matrix without quotes myprinter <- function(x) { dat <- x dimnames(dat) <- list(rep("", nrow(x)), rep("", ncol(x))) dat[is.na(dat)] <- "" noquote(format(dat, justify="right")) } myprinter(dat) Ultimately your original data is unchanged, but you get some nice output. HTH, Josh On Fri, Oct 8, 2010 at 6:42 PM, Joe P King <jp at joepking.com> wrote:> I did what you said and it worked perfectly, but I have tried to save some of my objects using paste because I want to limit the number of significant digits and one matrix has some empty spaces I use NA in, and I want those left blank, but when I paste into an object it doesn?t hold that formatting, any suggestions? How can I have a matrix that isn?t full to have empty spaces? If I just tell it " ", it turns the entire matrix into characters. > > Joe King > 206-913-2912 > jp at joepking.com > "Never throughout history has a man who lived a life of ease left a > name worth remembering." --Theodore Roosevelt > > > > -----Original Message----- > From: Joshua Wiley [mailto:jwiley.psych at gmail.com] > Sent: Thursday, October 07, 2010 11:43 PM > To: Joe P King > Cc: r-help at r-project.org > Subject: Re: [R] saving object function > > Hi Joe, > > You can just put the results into a named list, for example: > > functest<-function(x){ > a <- x + 1 > b <- x + 2 > c <- x + 3 > results <- list("a" = a, "b" = b, "c" = c) > return(results) > } > > functest(1)$a > > It is important to name the list or you would have to refer to it as: > functest(1)[[1]] for the first element and so on. > > HTH, > > Josh > > On Thu, Oct 7, 2010 at 11:30 PM, Joe P King <jp at joepking.com> wrote: >> Ok so if I have a function: >> >> >> >> functest<-function(x){ >> >> a<-x+1 >> >> b<-x+2 >> >> c<-x+3 >> >> paste(a) >> >> paste(b) >> >> paste(c) >> >> } >> >> >> >> Now I know I can do cat(), or return() on one of them but if I was to >> run the function with any number, how could I create objects to save >> so I could do, I am wondering if I have more than one object within my function. >> >> >> >> functest$a and get the result. I hope this is clear. >> >> >> >> ------------------------------------------- >> >> Joe King, M.A. >> >> Ph.D. Student >> >> University of Washington - Seattle >> >> 206-913-2912 >> >> <mailto:jp at joepking.com> jp at joepking.com >> >> ------------------------------------------- >> >> "Never throughout history has a man who lived a life of ease left a >> name worth remembering." --Theodore Roosevelt >> >> >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> 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. >> > > > > -- > Joshua Wiley > Ph.D. Student, Health Psychology > University of California, Los Angeles > http://www.joshuawiley.com/ > > ______________________________________________ > 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. >-- Joshua Wiley Ph.D. Student, Health Psychology University of California, Los Angeles http://www.joshuawiley.com/