 # Concatenating Strings and Numeric Vectors

Hello

I need to horizontally concatenate some string vectors  (say , b, c) and some numeric vectors  (say x and y)

In older versions of gauss I could do a~b~x~c~y but I think I cannot do that now. What should I do

0

The concatenation rules in GAUSS have not changed. Many years ago, before GAUSS supported string arrays, it was common to place string data inside of a regular GAUSS matrix. GAUSS will still allow you to do this. For example:

```//create character vector using
//matrix vertical concatenation operator '|'
city = "LA" | "Miami" | "New York" | "Seattle";
```

The variable city above is a character matrix. That means that it is character data stored inside of a GAUSS matrix. The statement above made a character matrix, because the matrix concatenation operator was used. We can create a string array by using the string vertical concatenation operator, \$|. For example:

```//create string array using
//string vertical concatenation operator '\$|'
city_sa = "LA" \$| "Miami" \$| "New York" \$| "Seattle";
```

What is the difference between a character vector and a string array in GAUSS?
1. Character data
Since character vectors are text stored inside of a GAUSS matrix, they are easy to mix with numeric data. For example, you can create a mixed matrix by using the matrix concatenation operators, for example:

```//create character vector using
//matrix vertical concatenation operator '|'
city = "LA" | "Miami" | "New York" | "Seattle";

population = { 3.8, 0.4, 8.2, 0.6 };

//create 4x2 matrix
city_data = city ~ population;
```

One thing to keep in mind with character data is that you must you a \$ in front of the variable to print the data as character data. For example, if we try to concatenate and print the data above in one compound statement:

```print city~population;
```

we will get this output:

```            +DEN       3.8
+DEN       0.4
3.7879048e+209       8.2
9.5338416e-307       0.6
```

If we want GAUSS to treat the first column as character data when printing, we need to use the \$ like this:

```print \$city;
```

```
LA
Miami
New York
Seattle
```

Finally, since character matrices are stored inside of a GAUSS matrix, each word only has 8 bytes (the size of a double precision floating point value). This means that you cannot place words with more than 8 characters inside of a character vector element.
2. String arrays
GAUSS string arrays support words or phrases of any length. So if you need to use longer variable names, then you should create a string array. You can create a string array by either using the string concatenation operator, or by using the string keyword. For example, either of the statements below will create the same output:

```city_sa = { "LA", "Miami", "New York", "Seattle" };
city_sa = "LA" \$| "Miami" \$| "New York" \$| "Seattle";
```

Since string arrays are created to carry character data, you do not need to use the \$ operator to print them.

```print city_sa;
```

will return the following output:

```              LA
Miami
New York
Seattle
```

However, string arrays cannot be mixed in the same element with a matrix. You may keep the string array and its corresponding data as separate GAUSS variables, or keep them together by making a simple structure in GAUSS. aptech

1,728

0

The concatenation rules in GAUSS have not changed. Many years ago, before GAUSS supported string arrays, it was common to place string data inside of a regular GAUSS matrix. GAUSS will still allow you to do this. For example:

```//create character vector using
//matrix vertical concatenation operator '|'
city = "LA" | "Miami" | "New York" | "Seattle";
```

The variable city above is a character matrix. That means that it is character data stored inside of a GAUSS matrix. The statement above made a character matrix, because the matrix concatenation operator was used. We can create a string array by using the string vertical concatenation operator, \$|. For example:

```//create string array using
//string vertical concatenation operator '\$|'
city_sa = "LA" \$| "Miami" \$| "New York" \$| "Seattle";
```

What is the difference between a character vector and a string array in GAUSS?
1. Character data
Since character vectors are text stored inside of a GAUSS matrix, they are easy to mix with numeric data. For example, you can create a mixed matrix by using the matrix concatenation operators, for example:

```//create character vector using
//matrix vertical concatenation operator '|'
city = "LA" | "Miami" | "New York" | "Seattle";

population = { 3.8, 0.4, 8.2, 0.6 };

//create 4x2 matrix
city_data = city ~ population;
```

One thing to keep in mind with character data is that you must you a \$ in front of the variable to print the data as character data. For example, if we try to concatenate and print the data above in one compound statement:

```print city~population;
```

we will get this output:

```            +DEN       3.8
+DEN       0.4
3.7879048e+209       8.2
9.5338416e-307       0.6
```

If we want GAUSS to treat the first column as character data when printing, we need to use the \$ like this:

```print \$city;
```

```
LA
Miami
New York
Seattle
```

Finally, since character matrices are stored inside of a GAUSS matrix, each word only has 8 bytes (the size of a double precision floating point value). This means that you cannot place words with more than 8 characters inside of a character vector element.
2. String arrays
GAUSS string arrays support words or phrases of any length. So if you need to use longer variable names, then you should create a string array. You can create a string array by either using the string concatenation operator, or by using the string keyword. For example, either of the statements below will create the same output:

```city_sa = { "LA", "Miami", "New York", "Seattle" };
city_sa = "LA" \$| "Miami" \$| "New York" \$| "Seattle";
```

Since string arrays are created to carry character data, you do not need to use the \$ operator to print them.

```print city_sa;
```

will return the following output:

```              LA
Miami
New York
Seattle
```

However, string arrays cannot be mixed in the same element with a matrix. You may keep the string array and its corresponding data as separate GAUSS variables, or keep them together by making a simple structure in GAUSS. aptech
1,728

### Have a Specific Question?

Get a real answer from a real person

### Need Support?

Get help from our friendly experts.