Skip to content

Writing a function

3 messages · vincent.stoliaroff@socgen.com, Brian Ripley, Uwe Ligges

#
Hi r lovers,

I have written the following  function
function(Matrix){
for (i in 1:3)
                        {
                        for (j in 1:2)
                                {if (is.na(Matrix[i,j]))
NA->(Matrix[i,j+1])}
                        }
Matrix
}

it looks correct but when I try to implement it on the MatCor Matrix I get
this error message
Error: couldn't find function "(<-"

I don't understand where does it come from since I have no string like (<-
in my code


Thanks for any help that could be provided.





*************************************************************************
Ce message et toutes les pieces jointes (ci-apres le "message") sont
confidentiels et etablis a l'intention exclusive de ses destinataires.
Toute utilisation ou diffusion non autorisee est interdite. 
Tout message electronique est susceptible d'alteration. 
La SOCIETE GENERALE et ses filiales declinent toute responsabilite au 
titre de ce message s'il a ete altere, deforme ou falsifie.
				********
This message and any attachments (the "message") are confidentia... {{dropped}}
#
On Mon, 28 Apr 2003 vincent.stoliaroff at socgen.com wrote:

            
You do, in the line

NA->(Matrix[i,j+1])

That's an unusual way of writing

(Matrix[i,j+1]) <- NA

and you have a set of parentheses there on the LHS of the assignment.
R is looking for a function "(<-" to implement this as

Matrix[i,j+1] <- "(<-"(NA)

You don't need (or want) the parentheses.

You might want to look up how functions on the LHS of assignments are 
supposed to work in R.
#
vincent.stoliaroff at socgen.com wrote:
Hint:

   NA->(Matrix[i,j+1])

is syntactically almost the same as

   (Matrix[i,j+1]) <- NA

but the latter (without the brackets) is less confusing.

Uwe Ligges