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.reg...@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.de...@gmail.com>
> Sent: Friday, July 28, 2017 12:25:54 PM
> To: Vijaya Kumar Regati
> Cc: vijaykr....@gmail.com; r-help@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.reg...@m3bi.com<mailto:vijayakumar.reg...@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@r-project.org<mailto: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.
> 
> 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@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.

Reply via email to