Your syntax on the 'if' is wrong; you need 'if (..expression..)' -- you are missing the parentheses. Also read up on functions; any changes are local -- you cannot change values outside the environment. You should just return values. You also probably need to pass in the dataframe you want to make changes to.
Probably what you want is: new_week <- function(df, x, y){ # x & y are character strings with the names of the columns to check/change df[[x]][is.na(df[[x]])] <- df[[y]][is.na(df[[x]])] df # return value } # then call with assignment of the result df <- new_week(df, 'wk5', 'wk4') Jim Holtman Data Munger Guru What is the problem that you are trying to solve? Tell me what you want to do, not how you want to do it. On Sun, Feb 28, 2016 at 6:08 PM, KMNanus <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(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 > 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 > PLEASE do read the posting guide > 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.