cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JMP is taking Discovery online, April 16 and 18. Register today and join us for interactive sessions featuring popular presentation topics, networking, and discussions with the experts.
Choose Language Hide Translation Bar
pen51
Level I

Integer data type vs Number data type

I have a column matrix, called "a", with x rows. I'm trying to create a matrix filled with 1's that has the same number x rows. 

When I say newmat = [](N Rows(a), 2), I get the error "Expected integer for number of rows" when trying to create the matrix. 

Type(3), and any other integer argument, will return "Integer" but Type(N Rows(a)) returns "Number". I tried setting the x rows to a variable name and trying that, but I get the same error. Is there another way to do this? I haven't found a way to convert a Number type to an Integer type on the boards or in the documentation.

1 ACCEPTED SOLUTION

Accepted Solutions
uday_guntupalli
Level VIII

Re: Integer data type vs Number data type

@pen51

a = Random Index(100,10); 

NewMat = J(N Rows(a),1,1);  // Use the J() to do this 

The above sample worked for me 

 

image.png 

Best
Uday

View solution in original post

3 REPLIES 3
uday_guntupalli
Level VIII

Re: Integer data type vs Number data type

@pen51

a = Random Index(100,10); 

NewMat = J(N Rows(a),1,1);  // Use the J() to do this 

The above sample worked for me 

 

image.png 

Best
Uday
txnelson
Super User

Re: Integer data type vs Number data type

Here are a couple of ways to create the matrix you are looking for

clear symbols();
a=[1 ,2 ,3];

b=j(n rows(a),1,1)

// or
b=a;
b[1::n rows(a)]=1;
Jim
cwillden
Super User (Alumni)

Re: Integer data type vs Number data type

Hi @pen51,

@uday_guntupalli is correct that J() is exactly the right function for this.  To get at the reason JMP is yelling at you is that certain JMP functions don't like to take variable names are arguments.  If needed, you can solve these kinds of problems with an eval-parse-eval insert sequence like so:

eval(parse(eval insert("newmat = [](^N Rows(a)^, 2)")));

Please use Uday's solution, but this tip may help you later when you encounter a similar situation.

 

-- Cameron Willden