On 6/23/05, ronggui <0034058 at fudan.edu.cn>
wrote:> for example,in my data d,the value 1:9,NA is valid and the others are
invalid.
> and i want to report something like:
> the variable z has invalid value.
>
> is there any function to do so?
>
> i though this will work but fails:
>
> > d
> x y z
> 1 1 NA 1
> 2 2 2 2
> 3 3 3 3
> 4 4 4 4
> 5 5 5 5
> 6 6 6 6
> 7 7 7 7
> 8 8 8 8
> 9 9 9 9
> 10 NA 10 9
>
> >myfun<-function(x) {
> if(any(a<-match(x,NA,nomatch=0)>0))
> cat(deparse(substitute(x)),"has invalid value","\n")}
> >apply(d,2,FUN=myfun)
> newX[, i] has invalid value
> newX[, i] has invalid value
Try looping over the names of d:
junk <- lapply(names(d), function(n) cat(n, d[,n], "\n"))