[R] R Programming help needed - Returning dataframes + 2 Variables dynamically

Koustav Pal koustavpal.devel at gmail.com
Fri Jul 28 11:30:13 CEST 2017


When you pass a variable to a function only the value is passed on, the
variable itself remains unchanged. Updated x and y values will be in
test_data[[1]] and test_data[[2]] respectively.

-----------------------------------------------------------------------------------
Koustav Pal,
PhD student in Computational Biology,
Francesco Ferrari's group,
IFOM - The FIRC Institute of Molecular Oncology
Milan, Italy.

On 28 July 2017 at 11:08, Mathew Guilfoyle <mrguilfoyle at gmail.com> wrote:

> The returned values are in the list you assign to test_data, the original
> x and y are not modified, i.e the returned value for x will be
> test_data[[1]] and for y will be test_data[[2]].  Using the same variable
> names in the function and test is perhaps what is leading to confusion.
>
> > On 28 Jul 2017, at 09:13, Vijaya Kumar Regati <
> VijayaKumar.Regati at m3bi.com> wrote:
> >
> > Hi,
> >
> >
> > That was very useful information. Thanks.
> >
> > But still I am not able to get the desired output with updated code.
> >
> > Kindly help if you have any further thoughts ...
> >
> > Updated code :
> > x <- 0
> > y <- 0
> >
> > Logic_fn <- function(x,y){
> >
> > print("Passed Values")
> > print(x)
> > print(y)
> > x <- x + 1
> > y <- y + 1
> >
> > print("After addition :")
> > print(x)
> > print(y)
> >
> > test_data <- rbind(x,y)
> > test_data <- data.frame(test_data)
> > return(list(x,y,test_data))
> > }
> >
> > for ( i in 1:1 ) {
> > test_data <- Logic_fn(x,y)
> > print("Returned Values :")
> > print(x)
> > print(y)
> > }
> >
> >
> > Wrong output :
> > [1] "Passed Values"
> > [1] 0
> > [1] 0
> > [1] "After addition :"
> > [1] 1
> > [1] 1
> > [1] "Returned Values :"
> > [1] 0
> > [1] 0
> >
> >
> > With Regards,
> > Vijaya Kumar Regati
> > Technical Lead, M3bi India Private Ltd
> > Work: 040-67064732
> >
> > ________________________________
> > From: Koustav Pal <koustavpal.devel at gmail.com>
> > Sent: Friday, July 28, 2017 12:25:54 PM
> > To: Vijaya Kumar Regati
> > Cc: vijaykr.sas at gmail.com; r-help at R-project.org
> > Subject: Re: [R] R Programming help needed - Returning dataframes + 2
> Variables dynamically
> >
> > c() is used for constructing vectors. Or in other words using the method
> c(x,y) provides a vector of length 2 (hopefully). Therefore, you are
> pushing a single vector to your function and not two arguments as you want.
> >
> > It should be Logic_fn(x,y) not Logic_fn(c(x,y)).
> >
> > Furthermore, i would recommend reading up on how function constructs
> work. Two return statements within a function are redundant because the
> function will exit after the first return statement, and anything else just
> creates more ambiguity. If you want to return the x y variables as well,
> you should use a list like so, list(test_data, x, y) and then retrieve
> information from the list like this Boo[[1]].....
> >
> > Finally i would also like to point out that you should note R's
> behaviour unless explicitly stated while calling the function is to assign
> the first argument to the first declared variable and the second to the
> second. So, if you called Logic_fn(y,x), then y will be assigned to x and x
> to y. So to avoid such a scenario you can mention it explicitly as
> Logic_fn(y=y,x=x).
> >
> >
> > On Jul 28, 2017 8:39 AM, "Vijaya Kumar Regati" <
> VijayaKumar.Regati at m3bi.com<mailto:VijayaKumar.Regati at m3bi.com>> wrote:
> > Hi,
> >
> >
> > Can someone please help me on below issue I am facing :
> >
> >
> > I am trying to play with returning a dataframe+2 variables using a fn.
> > But facing an issue :
> >
> > Error in Logic_fn(c(x, y)) : argument "y" is missing, with no default
> >
> > This is the code I am using :
> >
> >
> > x <- 0
> > y <- 0
> >
> > Logic_fn <- function(x,y){
> > x <- x + 1
> > y < y + 1
> > test_data <- rbind(x,y)
> > test_data <- data.frame(test_data)
> > return(test_data)
> > return(c(x,y))
> > }
> >
> > for ( i in 1:1) {
> >  test_data <- Logic_fn(c(x,y))
> > test_data[1]
> > test_data[2]
> > test_data
> >
> > }
> >
> > With Regards,
> > Vijaya Kumar Regati
> >
> >
> > Disclaimer: IMPORTANT NOTICE: This e-mail (including any attachments)
> are confidential, may contain proprietary or privileged information and is
> intended for the named recipient(s) only. If you are not the intended
> recipient, any disclosures, use, review, distribution, printing or copying
> of the information contained in this e-mail message and/or attachments to
> it are strictly prohibited. If you have received this email in error,
> please notify the sender by return e-mail or telephone immediately and
> permanently delete the message and any attachments.
> >
> >        [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at r-project.org<mailto:R-help at 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.
> >
> > Disclaimer: IMPORTANT NOTICE: This e-mail (including any attachments)
> are confidential, may contain proprietary or privileged information and is
> intended for the named recipient(s) only. If you are not the intended
> recipient, any disclosures, use, review, distribution, printing or copying
> of the information contained in this e-mail message and/or attachments to
> it are strictly prohibited. If you have received this email in error,
> please notify the sender by return e-mail or telephone immediately and
> permanently delete the message and any attachments.
> >
> >    [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list