Re: [R-pkg-devel] error in sample(), invalid 'size' argument

2020-01-15 Thread Roberts, David
Thanks Iñaki.  I was unaware of rhub.  Nice tool!  Unfortunately, their 
debian machine odes not reproduce the error.  I have written the R 
Submission crew to see if I can submit a package with a 
print(str(mss.10)) call to see the output in the examples log, or if 
that is an abuse of CRAN submission.  We'll see what they say.

Thanks again for your help, Dave

On 1/15/20 7:42 PM, Iñaki Ucar wrote:
> On Wed, 15 Jan 2020 at 19:26, Roberts, David  wrote:
>>
>> Dear Bill, Dear Iñaki,
>>
>>  Thank you both; I'm confident that you are right.  I realized a list
>> or data.frame would generate that error message, but I did not know that
>> NULL would also do so.
>>
>>   This means the the error occurred in the previous function call
>> which produced an output object that lacked the matrix expected at
>> $member.  As Iñaki well notes, the existence of an object of the correct
>> class doesn't guarantee it is well-formed.  On my machine (and those I
>> have access to), str(mss) returns
>>
>>List of 7
>>$ musubx  : num [1:78, 1:10] 1 1 1 1 1 1 1 1 1 1 ...
>>$ member  : int [1:78, 1:10] 1 2 3 4 5 6 8 9 10 11 ...
>>$ numset  : int 78
>>$ size: num 10
>>$ alphac  : NULL
>>$ distname: chr "dis.bc"
>>$ numele  : int 150
>>- attr(*, "class")= chr "mss"
>>- attr(*, "call")= language maxsimset(dist = dis.bc, size = 10)
>>- attr(*, "timestamp")= chr "Wed Jan 15 19:15:33 2020"
>>
>> where clearly $member is a matrix with 10 columns.
>>
>>  Unfortunately, I cannot generate the error on any machines I have
>> access to and will have to find a debian machine running R-devel to do
>> any debugging.
> 
> I would try the Debian machines on rhub: they should be pretty up to
> date with the CRAN configuration, and if you can reproduce the error
> there, then you can test a more verbose output without importuning
> CRAN, or you could even run those configurations and investigate
> locally using rhub's dockerfiles.
> 
> Iñaki
> 

-- 

David W. Roberts
Professor
Department of Ecology, Montana State University
On sabbatical at:
Swiss Federal Research Institute WSL,
Zuercherstrasse 111
CH-8903 Birmensdorf, Switzerland
__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] error in sample(), invalid 'size' argument

2020-01-15 Thread Iñaki Ucar
On Wed, 15 Jan 2020 at 19:26, Roberts, David  wrote:
>
> Dear Bill, Dear Iñaki,
>
> Thank you both; I'm confident that you are right.  I realized a list
> or data.frame would generate that error message, but I did not know that
> NULL would also do so.
>
>  This means the the error occurred in the previous function call
> which produced an output object that lacked the matrix expected at
> $member.  As Iñaki well notes, the existence of an object of the correct
> class doesn't guarantee it is well-formed.  On my machine (and those I
> have access to), str(mss) returns
>
>   List of 7
>   $ musubx  : num [1:78, 1:10] 1 1 1 1 1 1 1 1 1 1 ...
>   $ member  : int [1:78, 1:10] 1 2 3 4 5 6 8 9 10 11 ...
>   $ numset  : int 78
>   $ size: num 10
>   $ alphac  : NULL
>   $ distname: chr "dis.bc"
>   $ numele  : int 150
>   - attr(*, "class")= chr "mss"
>   - attr(*, "call")= language maxsimset(dist = dis.bc, size = 10)
>   - attr(*, "timestamp")= chr "Wed Jan 15 19:15:33 2020"
>
> where clearly $member is a matrix with 10 columns.
>
> Unfortunately, I cannot generate the error on any machines I have
> access to and will have to find a debian machine running R-devel to do
> any debugging.

I would try the Debian machines on rhub: they should be pretty up to
date with the CRAN configuration, and if you can reproduce the error
there, then you can test a more verbose output without importuning
CRAN, or you could even run those configurations and investigate
locally using rhub's dockerfiles.

Iñaki

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] error in sample(), invalid 'size' argument

2020-01-15 Thread Roberts, David
Dear Bill, Dear Iñaki,

Thank you both; I'm confident that you are right.  I realized a list 
or data.frame would generate that error message, but I did not know that 
NULL would also do so.

 This means the the error occurred in the previous function call 
which produced an output object that lacked the matrix expected at 
$member.  As Iñaki well notes, the existence of an object of the correct 
class doesn't guarantee it is well-formed.  On my machine (and those I 
have access to), str(mss) returns

  List of 7
  $ musubx  : num [1:78, 1:10] 1 1 1 1 1 1 1 1 1 1 ...
  $ member  : int [1:78, 1:10] 1 2 3 4 5 6 8 9 10 11 ...
  $ numset  : int 78
  $ size: num 10
  $ alphac  : NULL
  $ distname: chr "dis.bc"
  $ numele  : int 150
  - attr(*, "class")= chr "mss"
  - attr(*, "call")= language maxsimset(dist = dis.bc, size = 10)
  - attr(*, "timestamp")= chr "Wed Jan 15 19:15:33 2020"

where clearly $member is a matrix with 10 columns.

Unfortunately, I cannot generate the error on any machines I have 
access to and will have to find a debian machine running R-devel to do 
any debugging.

Thanks for your help, Dave

On 1/15/20 4:17 PM, William Dunlap wrote:
> If mss$member is not a matrix you will get that error because setsiz 
> will be NULL.
> 
>    > setsiz <- ncol( 33 )
>    > sample(1:3, setsiz)
>    Error in sample.int (length(x), size, replace, 
> prob) :
>      invalid 'size' argument
> 
> 
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com 
> 
> 
> On Wed, Jan 15, 2020 at 4:58 AM Roberts, David  > wrote:
> 
> Colleagues,
> 
>      I have a function (maxsimset) in package optpart that has
> worked for
> at least a decade, passes check --as-cran on my ubuntu-based system,
> and
> builds without errors at win-builder and CRAN windows, but fails at
> CRAN
> debian (unstable) with the error
> 
>   > mss.test(mss.10,shoshsite$elevation)
> Error in sample.int (length(x), size, replace,
> prob) :
>     invalid 'size' argument
> Calls: mss.test -> sample -> sample.int 
> 
> an excerpt of the function is below
> 
>    1  mss.test <- function(mss,env,panel='all',
>    2              main=deparse(substitute(env)),...)
>    3  {
>    4      if (class(mss) != "mss") {
>    5          stop("You must pass an object of class mss ...")
>    6      }
>    7      if (!is.numeric(env)) {
>    8          stop("You must pass only numeric vectors ... ")
>    9      }
> 10      setsiz <- ncol(mss$member)
> 11      nset <- mss$numset
> 12      null <- rep(0,nset)
> 13      for (i in 1:nset) {
> 14          tmp <- sample(1:length(env),setsiz)
> 15          nullmin <- min(env[tmp])
> 16          nullmax <- max(env[tmp])
> 17          null[i] <- nullmax - nullmin
> 18      }
> 19         .     .      .
> 20         .     .      .
> 21         .     .      .
> 22  }
> 
> The error occurs at line 14 in the excerpt above.  As you can see, the
> 'size' argument is setsiz, taken at line 10 as the ncol(mss$member);
> mss
> has already been checked for conformance and does indeed have a list
> object matrix called $member.  In my tests, setsiz has mode numeric,
> class integer, and size 1 as expected.  The specific error message I
> receive can be generated from sample() if size is a list object or
> data.frame, but not a vector or matrix.
> 
> Since I cannot replicate the error on any machines I have access to, I
> am at a loss for the reason behind the error.  If this should go to
> R-devel with respect to r77656 ( 2020-01-12) please advise.
> 
> Thanks in advance for any help, Dave
> __
> R-package-devel@r-project.org 
> mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> 
__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] error in sample(), invalid 'size' argument

2020-01-15 Thread William Dunlap
If mss$member is not a matrix you will get that error because setsiz will
be NULL.

  > setsiz <- ncol( 33 )
  > sample(1:3, setsiz)
  Error in sample.int(length(x), size, replace, prob) :
invalid 'size' argument


Bill Dunlap
TIBCO Software
wdunlap tibco.com


On Wed, Jan 15, 2020 at 4:58 AM Roberts, David  wrote:

> Colleagues,
>
> I have a function (maxsimset) in package optpart that has worked for
> at least a decade, passes check --as-cran on my ubuntu-based system, and
> builds without errors at win-builder and CRAN windows, but fails at CRAN
> debian (unstable) with the error
>
>  > mss.test(mss.10,shoshsite$elevation)
> Error in sample.int(length(x), size, replace, prob) :
>invalid 'size' argument
> Calls: mss.test -> sample -> sample.int
>
> an excerpt of the function is below
>
>   1  mss.test <- function(mss,env,panel='all',
>   2  main=deparse(substitute(env)),...)
>   3  {
>   4  if (class(mss) != "mss") {
>   5  stop("You must pass an object of class mss ...")
>   6  }
>   7  if (!is.numeric(env)) {
>   8  stop("You must pass only numeric vectors ... ")
>   9  }
> 10  setsiz <- ncol(mss$member)
> 11  nset <- mss$numset
> 12  null <- rep(0,nset)
> 13  for (i in 1:nset) {
> 14  tmp <- sample(1:length(env),setsiz)
> 15  nullmin <- min(env[tmp])
> 16  nullmax <- max(env[tmp])
> 17  null[i] <- nullmax - nullmin
> 18  }
> 19 . .  .
> 20 . .  .
> 21 . .  .
> 22  }
>
> The error occurs at line 14 in the excerpt above.  As you can see, the
> 'size' argument is setsiz, taken at line 10 as the ncol(mss$member); mss
> has already been checked for conformance and does indeed have a list
> object matrix called $member.  In my tests, setsiz has mode numeric,
> class integer, and size 1 as expected.  The specific error message I
> receive can be generated from sample() if size is a list object or
> data.frame, but not a vector or matrix.
>
> Since I cannot replicate the error on any machines I have access to, I
> am at a loss for the reason behind the error.  If this should go to
> R-devel with respect to r77656 ( 2020-01-12) please advise.
>
> Thanks in advance for any help, Dave
> __
> R-package-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>

[[alternative HTML version deleted]]

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] error in sample(), invalid 'size' argument

2020-01-15 Thread Iñaki Ucar
On Wed, 15 Jan 2020 at 13:58, Roberts, David  wrote:
>
> Colleagues,
>
> I have a function (maxsimset) in package optpart that has worked for
> at least a decade, passes check --as-cran on my ubuntu-based system, and
> builds without errors at win-builder and CRAN windows, but fails at CRAN
> debian (unstable) with the error
>
>  > mss.test(mss.10,shoshsite$elevation)
> Error in sample.int(length(x), size, replace, prob) :
>invalid 'size' argument
> Calls: mss.test -> sample -> sample.int
>
> an excerpt of the function is below
>
>   1  mss.test <- function(mss,env,panel='all',
>   2  main=deparse(substitute(env)),...)
>   3  {
>   4  if (class(mss) != "mss") {

Not related to the issue, but please use "inherits" instead.

>   5  stop("You must pass an object of class mss ...")
>   6  }
>   7  if (!is.numeric(env)) {
>   8  stop("You must pass only numeric vectors ... ")
>   9  }
> 10  setsiz <- ncol(mss$member)
> 11  nset <- mss$numset
> 12  null <- rep(0,nset)
> 13  for (i in 1:nset) {
> 14  tmp <- sample(1:length(env),setsiz)
> 15  nullmin <- min(env[tmp])
> 16  nullmax <- max(env[tmp])
> 17  null[i] <- nullmax - nullmin
> 18  }
> 19 . .  .
> 20 . .  .
> 21 . .  .
> 22  }
>
> The error occurs at line 14 in the excerpt above.  As you can see, the
> 'size' argument is setsiz, taken at line 10 as the ncol(mss$member); mss
> has already been checked for conformance

No, it has not. Nothing stops you from changing the contents of a S3
object, so just verifying the class is not a conformance check.

> and does indeed have a list object matrix called $member.

What do you mean by "list object matrix"?

> In my tests, setsiz has mode numeric,
> class integer, and size 1 as expected.  The specific error message I
> receive can be generated from sample() if size is a list object or
> data.frame, but not a vector or matrix.

My guess is that, in some call, you got an unintended simplification
when assigning $member. For any object without a "dim" attribute,
ncol(object) is NULL. And a NULL size in sample() raises such an
error.

Iñaki

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


[R-pkg-devel] error in sample(), invalid 'size' argument

2020-01-15 Thread Roberts, David
Colleagues,

I have a function (maxsimset) in package optpart that has worked for 
at least a decade, passes check --as-cran on my ubuntu-based system, and 
builds without errors at win-builder and CRAN windows, but fails at CRAN 
debian (unstable) with the error

 > mss.test(mss.10,shoshsite$elevation)
Error in sample.int(length(x), size, replace, prob) :
   invalid 'size' argument
Calls: mss.test -> sample -> sample.int

an excerpt of the function is below

  1  mss.test <- function(mss,env,panel='all',
  2  main=deparse(substitute(env)),...)
  3  {
  4  if (class(mss) != "mss") {
  5  stop("You must pass an object of class mss ...")
  6  }
  7  if (!is.numeric(env)) {
  8  stop("You must pass only numeric vectors ... ")
  9  }
10  setsiz <- ncol(mss$member)
11  nset <- mss$numset
12  null <- rep(0,nset)
13  for (i in 1:nset) {
14  tmp <- sample(1:length(env),setsiz)
15  nullmin <- min(env[tmp])
16  nullmax <- max(env[tmp])
17  null[i] <- nullmax - nullmin
18  }
19 . .  .
20 . .  .
21 . .  .
22  }

The error occurs at line 14 in the excerpt above.  As you can see, the 
'size' argument is setsiz, taken at line 10 as the ncol(mss$member); mss 
has already been checked for conformance and does indeed have a list 
object matrix called $member.  In my tests, setsiz has mode numeric, 
class integer, and size 1 as expected.  The specific error message I 
receive can be generated from sample() if size is a list object or 
data.frame, but not a vector or matrix.

Since I cannot replicate the error on any machines I have access to, I 
am at a loss for the reason behind the error.  If this should go to 
R-devel with respect to r77656 ( 2020-01-12) please advise.

Thanks in advance for any help, Dave
__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel