Hello,

Your function fun2 (in fact both of them) changes a _copy_ of df1, not 
df1 itself. To have a copy of the output of fun2 you need to assign the 
value of fun2 outside it.

df2 <- fun2(df1)

Now df2 has what you want. (If I understand it well.)

Hope this helps,

Rui Barradas
Em 17-11-2012 15:41, Omphalodes Verna escreveu:
> Dear list!
>   
> I would like to write a function to transform matrix, which is input argument of a written function. It is easy with new matrix (see below), but my idea is to transform input argument (matrix) of function without any additional matrixes. Here is an example:
>
> fun1 <- function(xy) {
> xy <- cbind(xy[,1], xy[,2], xy[,1] + xy[,2])
> return(xy)
> }
>   
> df1 <- matrix(c(1,2,3,1,2,3), ncol = 2)
> fun1(df1)
>   
> fun2 <- function(xy) {
> xy <- cbind(xy[,1], xy[,2], xy[,1] + xy[,2])
> return(invisible(xy))
> }
>   
> fun2(df1)
> df1
>> should be
>       [,1] [,2] [,3]
> [1,]    1    1    2
> [2,]    2    2    4
> [3,]    3    3    6
>   
> Thanks to all for help,
> OV
> 	[[alternative HTML version deleted]]
>
>
>
> ______________________________________________
> R-help@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.


	[[alternative HTML version deleted]]


