Dear all,

Happy new year!

I have a question re using sapply. Below is a dummy example that would replicate the error I saw. 

##Code Starts here
DummyFunc <- function(x) {

if (x > 0) {
return (x)
} else
{
return (-x)
}

}

Y = data.frame(val = c(-3:7))
sapply(Y, FUN = DummyFunc)
##Code ends here

When I run it, I got:
     val
 [1,]   3
 [2,]   2
 [3,]   1
 [4,]   0
 [5,]  -1
 [6,]  -2
 [7,]  -3
 [8,]  -4
 [9,]  -5
[10,]  -6
[11,]  -7
Warning message:
In if (x > 0) { :
  the condition has length > 1 and only the first element will be used

The result is different from what I would expect plus there is such an error message.

I guess if the DummyFunc I provided is compatible with vectors, the problem would go away. But let's suppose I cannot change DummyFunc. Is there still a way to use sapply or alike without actually writing a loop? Thanks.

- Alex
	[[alternative HTML version deleted]]

