Hello, It should be easu but I cannot figure out how to use apply function. I am trying to replace negative values in an array with these values + 24. Would appreciate help. Thanks, Mark shours <- apply(fhours, function(x){if (x < 0) x <- x+24}) Error in match.fun(FUN) : argument "FUN" is missing, with no default [[alternative HTML version deleted]]
Hi m p, You can use either apply(fhours, 2, function(x) ifelse(x < 0, x + 24, x) or shours <- fhours shours[shours < 0 ] <- shours[shours < 0 ] + 24 shours HTH, Jorge.- On Sat, Jan 19, 2013 at 4:17 PM, m p <> wrote:> Hello, > It should be easu but I cannot figure out how to use apply function. I am > trying to replace negative values in an array with these values + 24. > Would appreciate help. Thanks, > Mark > > shours <- apply(fhours, function(x){if (x < 0) x <- x+24}) > Error in match.fun(FUN) : argument "FUN" is missing, with no default > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. >[[alternative HTML version deleted]]
HI, Assuming a matrix: set.seed(15) mat1<-matrix(sample(-10:10,40,replace=TRUE),ncol=5) apply(mat1,2,function(x) ifelse(x<0,x+24, x)) ?# ?? [,1] [,2] [,3] [,4] [,5] #[1,]??? 2??? 4?? 23??? 1??? 0 #[2,]?? 18??? 7?? 10??? 3?? 16 #[3,]?? 10?? 16?? 16?? 16??? 0 #[4,]??? 3??? 3??? 6?? 17??? 3 #[5,]?? 21??? 0??? 6??? 9?? 16 #[6,]?? 10??? 4??? 6??? 0??? 0 #[7,]??? 7??? 8?? 21??? 0?? 20 #[8,]?? 19??? 7?? 15?? 19??? 5 A.K. ----- Original Message ----- From: m p <mzp3769 at gmail.com> To: r-help at stat.math.ethz.ch Cc: Sent: Saturday, January 19, 2013 12:17 AM Subject: [R] an apply question Hello, It should be easu but I cannot figure out how to use apply function. I am trying to replace negative values in an array with these values + 24. Would appreciate help. Thanks, Mark shours <- apply(fhours, function(x){if (x < 0) x <- x+24}) Error in match.fun(FUN) : argument "FUN" is missing, with no default ??? [[alternative HTML version deleted]] ______________________________________________ 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.
On Jan 18, 2013, at 9:17 PM, m p wrote:> Hello, > It should be easu but I cannot figure out how to use apply function.Unless this is a homework question then using `apply` seems inefficient.> I am > trying to replace negative values in an array with these values + 24. > Would appreciate help. Thanks, > Mark > > shours <- apply(fhours, function(x){if (x < 0) x <- x+24}) > Error in match.fun(FUN) : argument "FUN" is missing, with no defaultYou should not use the assignment operator in the expression that forms the consequent for `ifelse`. (Furthermore apply takes three arguments and you only have two.) Vectorize: mat1<-matrix(sample(-10:10,40,replace=TRUE),ncol=5) mat1[mat1 < 0] <- mat1[mat1 < 0]+24 mat1 [,1] [,2] [,3] [,4] [,5] [1,] 2 4 23 1 0 [2,] 18 7 10 3 16 [3,] 10 16 16 16 0 [4,] 3 3 6 17 3 [5,] 21 0 6 9 16 [6,] 10 4 6 0 0 [7,] 7 8 21 0 20 [8,] 19 7 15 19 5> > [[alternative HTML version deleted]] > > ______________________________________________ > 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.David Winsemius, MD Alameda, CA, USA