The $ operator does partial matching by default so for example

> print(b$u)
[1] 1

The [[ operator does not

> print(b[["unit"]])
NULL
> print(b[["unit1"]])
[1] 1

See help("$") for more details and also the warnPartialMatch* arguments in help("options").

Try

testfunction <- function(x) if (exists("unit", x) && x[["unit"]]==1) cat("All is well\n")

Hope this helps

Allan


On 26/09/11 10:23, Vikram Bahure wrote:
Hi,

I am a new user to R.

I am having the following problem while using R:
The defined function is having following a$unit as input but if I define
a$unit1 then still I am getting the output which is not desired.
__________________________
*Function:*
testfunction<-function(a){
stopifnot(a$unit==1)
cat("All is well")
}
b<-list(unit1=1 )
testfunction(b)
---------------------------------------------
*Output:*
testfunction<-function(a){
stopifnot(a$unit==1)
cat("All is well")
}
b<-list(unit1=1 )
testfunction(b)
testfunction<-function(a){
+ stopifnot(a$unit==1)
+ cat("All is well")
+ }
b<-list(unit1=1 )
testfunction(b)
All is well>
__________________________

If it is a auto complete problem, it would be nice if you could let me know
how to disable it, else you could throw some light on the what the problem
is exactly.

Regards
Vikram

        [[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.

______________________________________________
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.

Reply via email to