[R] using a package function inside another function

Ethan Brown ethancbrown at gmail.com
Thu Oct 7 18:08:18 CEST 2010


Hi Alison,

By default, a function in R creates a copy of the variable that you
pass into it. insertRow() looks to be unusual in that it actually
changes the variable you pass into the function.

So if you run your insert_row_test(x), the function will create a copy
of x, insert a row into it using insertRow(), and then return that new
matrix.  So all you need to do is assign the output of your function
to the original object, like so:

> x <- matrix(1:9, 3, 3)

> x
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

> x <- insert_row_test(x)

> x
     [,1] [,2] [,3]
        1    4    7
        2    5    8
        3    6    9
test    0    0    0


See http://cran.r-project.org/doc/manuals/R-intro.html#Writing-your-own-functions
for more on this topic.

HTH,
Ethan Brown


On Thu, Oct 7, 2010 at 9:47 AM, Alison Callahan
<alison.callahan at gmail.com> wrote:
> Hello all,
>
> I am trying to use the micEcon 'insertRow' function inside a function
> I have written. For example:
>
> insert_row_test <- function(m){
>
>  insertRow(m,nrow(m)+1,v=0,rName="test")
>
> }
>
> However, when I try to call the 'insert_row_test' function (after
> loading the micEcon package), it does not insert a row into the matrix
> I pass in. When I call the insertRow function exactly as above in the
> R console, it works with no problem.
>
> Can anyone tell me why this is, and how to fix this problem?
>
> Thank you!
>
> Alison Callahan
> PhD candidate
> Department of Biology
> Carleton University
>
> ______________________________________________
> 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.
>



More information about the R-help mailing list