Quoting bic...@math.usask.ca:

Here is are a few lines of my R session:

class(income)
[1] "integer"
class(sapply(1000*income-999,atv,sktaxb,sktax))
[1] "numeric"
class(sapply(1000*income-1001,atv,sktaxb,sktax))
[1] "list"

Although "income" is a numeric array, and sapply works as expected
returning an array (the function "atv" returns a single numeric argument),
if subtract a large enough number from the first argument, the sapply
function now wants to return a list?   Am I missing something?

I am running version 3.3.2 on Mac OS 10.9.9


You have not shown what 'income', 'atv', and so on are; so there is an infinity
of possible reasons why you get a list instead of a numeric vector.

One possible reason: what if 'atv' sometimes returns no value at all?

f <- function(x) x[x>0]
str(sapply(1:10, f))
## int [1:10] 1 2 3 4 5 6 7 8 9 10

str(sapply(-5:5, f))
## List of 11
##  $ : int(0)
##  $ : int(0)
##  $ : int(0)
##  $ : int(0)
##  $ : int(0)
##  $ : int(0)
##  $ : int 1
##  $ : int 2
##  $ : int 3
##  $ : int 4
##  $ : int 5

--
Enrico Schumann
Lucerne, Switzerland
http://enricoschumann.net

______________________________________________
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.

Reply via email to