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.