You need to do 'is.na(x)' instead of "x == NA".. Here is a
way of doing it:
> x <- matrix(1,10,10)
> x[sample(1:100,10)] <- NA
> x
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 1 1 1 1 1 1 1 1 1
[2,] 1 1 1 1 1 1 NA 1 1 1
[3,] 1 1 1 1 1 1 1 1 1 1
[4,] 1 1 1 1 1 1 1 1 1 1
[5,] 1 1 1 1 1 1 1 1 1 1
[6,] NA 1 1 1 1 1 1 1 NA 1
[7,] 1 1 NA NA 1 NA 1 1 1 NA
[8,] 1 1 1 1 1 NA 1 1 1 1
[9,] 1 1 1 1 1 1 1 1 NA 1
[10,] 1 NA 1 1 1 1 1 1 1 1>
> apply(x,1,function(.row) sum(is.na(.row)))
[1] 0 1 0 0 0 2 4 1 1 1>
On Jan 21, 2008 7:23 PM, Jon Erik Ween <jween at klaru-baycrest.on.ca>
wrote:> Hi!
>
> I need to conditionally update a dataframe field based on values in
> other fields and can't find even how to search for this right. Sorry
> if this has been asked before.
>
> But, specifically, I have a 490 X 221 dataframe and need to count, by
> row, how many fields in Dataframe$field_a...Dataframe$field_zz are
> non-null and enter this value in Dataset$ABCtaskNum. I have field
> name definitions in a vector "vars" and tried writing a custom
> function to handle the within-row calculation
>
> myfunct <-function () {for (i in 1:length(vars)) {if (vars[i] != NA)
> {Dataset$ABCtaskNum<-Dataset$ABCtaskNum+1}}}
>
> and then use "apply" to handle the row to row calculation
>
> Dataset <- apply(Dataset, 1, myfunc) Where Dataset already has field
> Dataset$ABCtaskNum set to 0 in all rows.
>
> But that didn't work. Doesn't help if I declare variables (vars and
> ABCtaskNum) in the function declaration either, but then I haven't
> quite figured out how best to do variable substitutions in R.
>
> Thanks for any help. Cheers
>
> Jon
>
> Soli Deo Gloria
>
> Jon Erik Ween, MD, MS
> Scientist, Kunin-Lunenfeld Applied Research Unit
> Director, Stroke Clinic, Brain Health Clinic
> Baycrest Centre for Geriatric Care
> Assistant Professor, Dept. of Medicine, Div. of Neurology
> University of Toronto Faculty of Medicine
>
> Posluns Building, 6th Floor, Room 644
> Baycrest Centre for Geriatric Care
> 3560 Bathurst Street
> Toronto, Ontario M6A 2E1
> Canada
>
> Phone: 416-785-2500 x3636
> Fax: 416-785-2484
> Email: jween at klaru-baycrest.on.ca
>
>
> Confidential: This communication and any attachment(s) may contain
> confidential or privileged information and is intended solely for the
> address(es) or the entity representing the recipient(s). If you have
> received this information in error, you are hereby advised to destroy
> the document and any attachment(s), make no copies of same and inform
> the sender immediately of the error. Any unauthorized use or
> disclosure of this information is strictly prohibited.
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem you are trying to solve?