[R] how to recode with an if-type statement
Don MacQueen
macq at llnl.gov
Mon Sep 14 17:39:53 CEST 2009
I suppose there are a couple of ways...
if (numbers==1) {
distot <-
} else if (numbers ==2) {
distot <-
} else if (numbers==3) {
distot <-
} else distot <- NA
(letting you fill in the right hand side within each block)
There's also
distot <- switch(numbers,
w9zd9_1,
(w9zd9_1 + w9zd9_2)/2,
(w9zd9_1 + w9zd9_2 + w9zd9_3)/3,
NA)
In both cases I added an explicit result in case numbers is not one
of the expected values.
Generalizing this to an arbitrary value of numbers would be trickier.
-Don
At 11:05 AM -0400 9/14/09, Casey Klofstad wrote:
>I'm sure this is easy, but I'm having a hard time figuring out how to
>recode some data in R.
>
>I have a variable "numpeers" which is valued 1, 2, or 3. I also have
>three other variables called "w9zd9_1," "w9zd9_2," and "w9zd9_3." I
>want to use these variables to create a new item called "distot."
>
>Specifically, here is what I want to do:
>
>-if numpeers=1, then distot=w9zd9_1
>
>-if numpeers=2, then distot=(w9zd9_1 + w9zd9_2)/2
>
>-if numpeers=3, then distot=(w9zd9_1 + w9zd9_2 + w9zd9_3)/3
>
>Thanks, in advance, for the help!
>
>--
>Casey A. Klofstad
>University of Miami
>Department of Political Science
>Coral Gables, FL
>
>klofstad at gmail.com
>http://*www.*as.miami.edu/personal/cklofstad/
>
>______________________________________________
>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.
--
--------------------------------------
Don MacQueen
Environmental Protection Department
Lawrence Livermore National Laboratory
Livermore, CA, USA
925-423-1062
More information about the R-help
mailing list