colnames(dd) #[1] "col1" "colb" null_vector<- colnames(dd) sapply(null_vector,makeNull,dd) # col1 colb #[1,] NA 4 #[2,] 2 NA #[3,] 3 2 #[4,] 4 NA #[5,] 1 4 #[6,] NA 5 #[7,] 1 6 A.K.
>I am trying to make a column value in a dataframe = NA if there is a 0 or high value in that column. I need to do this process repeatedly, hence I >have to define a function. Here is the code, that I am using and is not working. Please advise on where I am making an error. > >makeNull <- function(col, data=dd) { >is.na(data[[col]]) <- data[[col]] ==0 >is.na(data[[col]]) <- data[[col]] > 999999 >return(data[[col]]) >} > >dd <- data.frame(col1=c(0,2,3,4,1,0,1),colb=c(4,0,2,0,4,5,6)) >null_vector=c("cola","colb") >sapply(null_vector,function(x) makeNull(x,dd)) > >Error in `[[<-.data.frame`(`*tmp*`, col, value = logical(0)) : replacement >has 0 rows, data has 7 > > >Thank you in advance. >-Sanjeev ______________________________________________ R-help@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.