[R] functions as arguments to ther functions with inlinedocs

Jannis bt_jannis at yahoo.de
Fri Jan 25 09:20:37 CET 2013


Dear Duncan, dear Rui,


thanks for your replies. You are correct regarding the additional 
paranthesis. I probably copied the wrong code. I, however, get this 
inlinedocs error with the correct version. After contacting the package 
maintainer I think this is now added to inlinedocs list of bugs.


Thanks agian for replies!
Jannis

On 24.01.2013 20:02, Rui Barradas wrote:
> Hello,
>
> Sorry, it's RIGHT parenthesis.
>
>
> Rui Barradas
> Em 24-01-2013 18:54, Rui Barradas escreveu:
>> Hello,
>>
>> Your function declaration has a syntax error, one left parenthesis too
>> much. Corrected it would be
>>
>>
>> dummyfunction <- function(filters = function(x) {b = 0; x > b} ){
>>    # rest of code here
>>    filters  # this returns a function, don't need return()
>> }
>>
>> x <- -5:5
>> f <- dummyfunction()  # this creates the default function
>> f(x)
>>
>> g <- dummyfunction(mean)  # this creates another function
>> g(x)
>>
>>
>> As you can see, you can use default functions as arguments in your
>> function declaration.
>>
>>
>> Hope this helps,
>>
>> Rui Barradas
>>
>> Em 24-01-2013 18:32, Jannis escreveu:
>>> Dear R community,
>>>
>>> I have a problem when I use functions as default values for argumnents
>>> in other functions. When I use curly brackets { here, I can not create a
>>> package with inlinedocs. It will give me the error when using
>>> package.skeleton() in my package structure:
>>>
>>> Error in parse(text = utxt) : <text>:4:0: unexpected end of input
>>>
>>>
>>> For example:
>>>
>>> dummyfunction = function(filters = function(x) {b = 0; x > b} ))
>>> {
>>>    # rest of code here
>>>    return(filters)
>>> }
>>>
>>>
>>> This seems to me as a legal function declaration but creates the above
>>> mentioned error. Is this an error of inlinedocs or do I misunderstand
>>> the R language? Or is there another way of using functions in such a way
>>> as arguments? In this case I could easily define this filters argument
>>> inside the function for cases when it is not supplied as an argument but
>>> I have some more complex functions where I really need to define
>>> something sequential as an argument like:
>>>
>>> dummyfunction = function(filters = {a = 1; b > a; b}) {print('test')}
>>>
>>>
>>> I hope I could clarify my problem.
>>>
>>>
>>> Thanks a lot
>>> Jannis
>>>
>>> ______________________________________________
>>> 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.
>>
>> ______________________________________________
>> 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