Displaying 20 results from an estimated 11000 matches similar to: "body(NULL) <- something; ditto formals() -- should not work"
2016 Mar 29
0
body(NULL) <- something; ditto formals() -- should not work
Hi,
On 03/07/2016 09:26 AM, Martin Maechler wrote:
> I'm proposing to signal an error (from R >= 3.3.0) in such
> examples -- which do "work" in R 3.2.x and earlier :
>
>> f <- NULL; body(f) <- quote(sin(a+1)); f
> function ()
> sin(a + 1)
> <environment: 0x48f9798>
>
This works because formals() (the getter) works on things that are
not a
1999 Mar 29
3
problems with formals and get (PR#151)
With 0.63.3, try
test <- function(){
fn <- function(a) print("hello")
print(is.function(fn))
print(names(formals("fn")))}
test()
if fn is not quoted in the last line of test, it works properly.
test <- function(){
fn <- function() print("hello")
formals(fn) <- alist(a=,b=)
return(fn)}
formals(test())
now try with line 3 of test changed to
2007 Jun 26
1
slight anomaly in formals<- ? (PR#9758)
Hi,
The R input/output after the following paragraph is from a session with
version.string R version 2.4.0 Patched (2006-11-23 r39958).
The last element, x$c, of x has no value and after the assignment of x to the
formals of f, x$c does not become a formal argument of f. The second assignment
does the job. It seems that x$c actually becomes the body of f after the first
assignment. There is no
2009 Jul 24
1
Most elegant way to use formals() in building functions
Dear Group:
I want to create a function having a ... argument and to have the
default arguments evaluated, as thus:
g <- function(a, b, ...) a+b
formals(g) <- alist(a=,b=2+3,...=)
g
function (a, b = 2 + 3, ...)
a + b
But I want the default argument for b to be evaluated as 5. How can
this be done? Note: My real need is for a more complex expression to be
evaluated for the default
2016 Oct 19
2
How to assign NULL value to pairlist element while keeping it a pairlist?
On Sat, Oct 15, 2016 at 2:00 AM, Martin Maechler
<maechler at stat.math.ethz.ch> wrote:
>>>>>> Michael Lawrence <lawrence.michael at gene.com>
>>>>>> on Wed, 12 Oct 2016 15:21:13 -0700 writes:
>
> > Thanks, this was what I expected. There is a desire to
> > eliminate the usage of pairlist from user code, which
> >
2005 Oct 31
0
(PR#7495) Function Body / Formals Bug
_________________________________________________________________________=
______________
Note: This e-mail is subject to the disclaimer contained at the bottom of=
=20this message.
_________________________________________________________________________=
______________
Just a note on the reported bug; it seems to be related to having a NULL
function body.
# this works
> f <-
2005 Jan 12
0
Function Body / Formals Bug (PR#7495)
I'd like to report two bugs in the R function definitions, the first
slightly problematic, the second likely unimportant. Both of these are
reproducible on both Windows and Linux, R 2.0.1
First Bug:
> a <- new("function")
> formals(a) <- alist(a=, b=, c=, d=)
> a
function (a, b, c) ## the d argument disappeared!
> formals(a) <- alist(a=, b=, c=, d=)
> a
2009 Oct 01
1
inverse currying
Dear list,
I have the following function,
sugar = function(fun, id = "id"){
ff <- formals(fun)
if( id %in% names(ff))
stop("id is part of args(fun)")
formals(fun) <- c(unlist(ff), alist(id=))
fun
}
which one may use on a function foo,
foo = function(x){
x
}
sugar(foo) # results in the extended closure,
function (x, id)
{
x
}
Its limitation (other
2010 Oct 08
2
What do you call the value that represents a missing argument?
Hi all,
What's the official name for the value that represents a missing argument?
e.g.
formals(plot)$x
str(formals(plot)$x)
deparse(formals(plot)$x)
is.symbol(formals(plot)$x)
What's the correct way to create an object like this? (for example if
you are manipulating the formals of a function to add an argument with
no default value, as in http://stackoverflow.com/questions/3892580/).
2024 Feb 18
1
Capturing Function Arguments
? Sat, 17 Feb 2024 11:15:43 -0700
"Reed A. Cartwright" <racartwright at gmail.com> ?????:
> I'm wrapping a function in R and I want to record all the arguments
> passed to it, including default values and missing values.
This is hard if not impossible to implement for the general case
because the default arguments are evaluated in the environment of the
function as it
2018 Jun 08
3
Subsetting the "ROW"s of an object
> On Jun 8, 2018, at 1:49 PM, Hadley Wickham <h.wickham at gmail.com> wrote:
>
> Hmmm, yes, there must be some special case in the C code to avoid
> recycling a length-1 logical vector:
Here is a version that (I think) handles Herve's issue of arrays having one or more 0 dimensions.
subset_ROW <-
function(x,i)
{
dims <- dim(x)
index_list <-
2004 Sep 14
3
Getting the argument list within a function
Is there a way of getting the argument list of a function from within
that function? For example, something like
f <- function(x, y = 3) {
fargs <- getFunctionArgList()
print(fargs) ## Should be `alist(x, y = 3)'
}
Thanks,
-roger
2006 Dec 18
3
turning expression object to function
Dear all,
I have the following problem.
Given an expression object 'expr' containing a certain set of symbols
(say 'a', 'b', 'c'), I would like to translate the expression object
in an R function of, say, 'a', programmatically. Here an example of
what I mean.
Given:
> expr <- expression(a+b+c)
a call like:
> asFunctionOf(expr, 'a',
2016 Oct 12
2
How to assign NULL value to pairlist element while keeping it a pairlist?
Thanks, this was what I expected. There is a desire to eliminate the
usage of pairlist from user code, which suggests the alternative of
allowing for function arguments to be stored in lists. That's a much
deeper change though.
On Wed, Oct 12, 2016 at 12:31 PM, Henrik Bengtsson
<henrik.bengtsson at gmail.com> wrote:
> Michael, thanks for this info.
>
> I've stumbled upon
2011 Dec 05
2
class extension and documentation
I've added a "backsolve" method to the bdsmatrix library.
Per the Extending manual section 7.1 I've also added the following 3
lines along with my setMethod definitions for 2 classes.
backsolve <- function(r, ...) UseMethod("backsolve")
backsolve.default <- base:::backsolve
formals(backsolve.default) <- c(formals(backsolve.default), alist(...
= ))
I've
2007 Aug 22
2
Evaluating f(x(2,3)) on a function f<- function(a,b){a+b}
Dear list
I have a function and a vector, say
f <- function(a,b){a+b}
x <- c(2,3)
I want to "evaluate f on x" in the sense of computing f(x[1],x[2]). I would like it to be so that I can write f(x). (I know I can write a wrapper function g <- function(x){f(x[1],x[2])}, but this is not really what I am looking for). Is there a general way doing this (programmatically)?
2013 Feb 04
2
Modifying a function programmatically
Dear list
# I have a function
ff <- function(a,b=2,c=4){a+b+c}
# which I programmatically want to modify to a more specialized function in which a is replaced by 1
ff1 <- function(b=2,c=4){1+b+c}
# I do as follows:
vals <- list(a=1)
(expr1 <- as.expression(body(ff)))
expression({
a + b + c
})
(expr2 <- do.call("substitute", list(expr1[[1]], vals)))
{
1 +
2005 Feb 28
2
Changing function arguments to NULL
I'm trying to build a recursive set of functions that take a set of
arguments, change some of the arguments and recursively call the same
(or different) function.
For example here's a stupid recursive counting function that prints back
all integers from x to 0 (and ignores arguments y and z)
cnt <- function(x, y, z) {
stopifnot(is.numeric(x))
print (x)
recursionFUN <-
2024 Feb 17
2
Capturing Function Arguments
I'm wrapping a function in R and I want to record all the arguments
passed to it, including default values and missing values. I want to
be able to snoop on function calls in sourced scripts as part of a
unit testing framework.
I can capture the values fine, but I'm having trouble evaluating them
as if `force()` had been applied to each of them.
Here is a minimal example:
f0 <-
2006 Mar 07
1
possible bug: NULL equality in lists.
I was messing around with R and I found an example R behaving oddly:
a <- alist(NULL, "bob", c(3,6,2,3))
a
a == 'NULL'
a == "NULL"
a == 'cat'
If I create a list with a NULL value
>a <- alist(NULL, "bob", c(3,6,2,3))
>a
[[1]]
NULL
[[2]]
[1] "bob"
[[3]]
c(3, 6, 2, 3)
and run some tests on 'a', the '==