Please keep the mailing list cc'd.

Why? Because that is what you are giving it... vectors, and that is how it is 
defined to work. Type 

?ifelse

at the R console and read the help. 

There are several ways to modify a data frame.  Some are

ken$wk5 <- ifelse( is.na( ken$wk5 ), ken$wk4, ken$wk5 )

ken$wk5 <- with( ken, ifelse( is.na( wk5 ), wk4, wk5 ) )

ken  <- within( ken, {
     wk5 <- ifelse( is.na( wk5 ), wk4, wk5 )
})

The ? shortcut to help is your friend. 
-- 
Sent from my phone. Please excuse my brevity.

On February 29, 2016 1:34:56 PM PST, KMNanus <kmna...@gmail.com> wrote:
>Jeff - 
>
>Can you explain why “ifelse” returns a vector?
>
>When I call > ken2 <- ifelse(is.na(ken$wk5), ken$wk4, ken$wk5)
>
>this is what’s returned - the values are correct but, obviously, I have
>to put it back into the df.
>
>> ken2
>[1]  8 17 11 11 21  3  7
>
>Ken
>kmna...@gmail.com
>914-450-0816 (tel)
>347-730-4813 (fax)
>
>
>
>> On Feb 29, 2016, at 4:15 PM, KMNanus <kmna...@gmail.com> wrote:
>> 
>> Jeff - 
>> 
>> ifelse is clearly the answer.  It works nicely and returns a vector
>which I can then reinsert into the data frame.  Is there a way that I
>can combine both steps - replacement of the NA’s and reinsertion into
>the data frame - at one time or am I better off just writing a function
>to do that?
>> 
>> 
>> Ken
>> kmna...@gmail.com <mailto:kmna...@gmail.com>
>> 914-450-0816 (tel)
>> 347-730-4813 (fax)
>> 
>> <image001.jpg>
>> 
>>> On Feb 29, 2016, at 5:17 AM, Jeff Newmiller
><jdnew...@dcn.davis.ca.us <mailto:jdnew...@dcn.davis.ca.us>> wrote:
>>> 
>>> "if" is not vectorized... it only works on length 1 test values.
>However, if you do use it, it absolutely requires parentheses... if (
>test ) { truecode }.
>>> 
>>> I think you want "ifelse" which is vectorized... something like
>>> 
>>> ifelse( is.na <http://is.na/>( x ), y, x )
>>> 
>>> Read the help pages ?if and ?ifelse. 
>>> 
>>> I don't know about the missing "E" in the error message... you might
>have corrupted your code with unicode or other non-ASCII characters by
>using a word processor rather than a text editor. 
>>> -- 
>>> Sent from my phone. Please excuse my brevity.
>>> 
>>> On February 28, 2016 3:08:56 PM PST, KMNanus <kmna...@gmail.com
><mailto:kmna...@gmail.com>> wrote:
>>> I’m a newbie and trying to execute this simple function in order to
>change wk 5 NA’s to wk 4 values for the dataset (ken) below.  Can
>someone pls tell me what I’m doing wrong?  The error msg is “"rror:
>unexpected input in "new_week <- function(x,y) { “
>>> Even the “E” is missing in the word “Error."
>>> 
>>> new_week <- function(x,y) {
>>> if x[is.na <http://is.na/>(x)] {
>>> x = y
>>> }
>>> }
>>> 
>>> patient wk1 wk2 wk3 wk4 wk5
>>> A 1 2 4 6 8
>>> B 2 3 NA 3 17
>>> C 3 4 5 11 NA
>>> D 4 NA 6 12 11
>>> E 5 6 7 NA 21
>>> F 6 7 8 3 NA
>>> G 7 8 9 7 NA
>>> 
>>> 
>>> 
>>> Ken
>>> kmna...@gmail.com <mailto:kmna...@gmail.com>
>>> 914-450-0816 (tel)
>>> 347-730-4813 (fax)
>>> 
>>> 
>>> 
>>> 
>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
><https://stat.ethz.ch/mailman/listinfo/r-help>
>>> PLEASE do read the posting guide
>http://www.R-project.org/posting-guide.html
><http://www.r-project.org/posting-guide.html>
>>> and provide commented, minimal, self-contained, reproducible code.
>> 

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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