Svector
String vector object.
Svector Declaration
To declare an svector object, use the keyword svector, followed by a name.
Svector Views
display display table, graph, or spool in object window.
sheet spreadsheet view of the scalar.
Svector Procs
clearhist clear the contents of the history attribute.
copy creates a copy of the svector.
export export svector as Excel 2007 XLSX, CSV, tab-delimited ASCII text, RTF, HTML, Enhanced Metafile, PDF, TEX, or MD file on disk.
fill fill the svector with the specified values.
import imports data from a foreign file into the svector object.
olepush push updates to OLE linked objects in open applications.
resize resize the svector object.
setattr set the value of an object attribute.
showlabels displays the custom row and column labels of an svector spreadsheet.
Svector Data Members
String values
@attr("arg") string containing the value of the arg attribute, where the argument is specified as a quoted string.
@collabels string containing the column label of the svector.
@description string containing the svector object’s description (if available).
@detailedtype string with the object type: “SVECTOR”.
@displayname string containing the svector object’s display name. If the svector has no display name set, the name is returned.
@name string containing the svector object’s name.
@remarks string containing the svector object’s remarks (if available).
@rowlabels string containing the row labels of the svector.
@type string with the object type: “SVECTOR”.
@updatetime string representation of the time and date at which the svector was last updated.
Scalar values
@rows number of rows in the svector.
Svector values
@droprow(arg) Returns the svector with rows defined by arg removed. arg may be an integer, vector of integers, string, or svector of strings. Integers correspond to row numbers so that, for example, arg = 2 specifies the second row. Strings correspond to row labels so that arg = "2" specifies the first row labeled “2”.
@irow(arg) Returns the indices for the rows defined by arg where arg is a string or svector of strings. The strings correspond to row labels so that arg = "2" specifies the first row labeled “2”.
@row(arg) Returns the svector with rows defined by arg. arg may be an integer, vector of integers, string, or svector of strings. Integers correspond to row numbers so that, for example, arg = 2 specifies the second row. Strings correspond to row labels so that arg = "2" specifies the first row labeled “2”.
Clear the column label in a svector object.
Syntax
svector_name.clearcollabels
Examples
svec1.clearcollabels
clears the custom column label from the svector SVEC1.
Cross-references
Clear the contents of the history attribute.
Removes the svector history attribute, as shown in the label view of the svector.
Syntax
svector_name.clearhist
Examples
s1.clearhist
s1.label
The first line removes the history from the svector S1, and the second line displays the label view of S1, including the now blank history field.
Cross-references
See
“Labeling Objects” for a discussion of labels and display names.
Clear the contents of the remarks attribute.
Removes the svector’s remarks attribute, as shown in the label view of the svector.
Syntax
svector_name.clearremarks
Examples
s1.clearremarks
s1.label
The first line removes the remarks from the svector S1, and the second line displays the label view of S1, including the now blank remarks field.
Cross-references
See
“Labeling Objects” for a discussion of labels and display names.
Clear the row labels in a vector object.
Syntax
svector_name.clearrowlabels
Examples
svec1.clearrowlabels
clears the custom row labels from the svector SVEC1.
Cross-references
Creates a copy of the svector.
Creates either a named or unnamed copy of the svector.
Syntax
svector_name.copy
svector_name.copy dest_name
Examples
s1.copy
creates an unnamed copy of the svector S1.
s1.copy s2
creates S2, a copy of the svector S1.
Cross-references
Display table, graph, or spool output in the svector object window.
Display the contents of a table, graph, or spool in the window of the svector object.
Syntax
svector_name.display object_name
Examples
svector1.display tab1
Display the contents of the table TAB1 in the window of the object SVECTOR1.
Cross-references
Most often used in constructing an EViews Add-in. See
“Custom Object Output”.
Display name for the svector objects.
Attaches a display name to an svector object which may be used to label output in place of the standard object name.
Syntax
svector_name.displayname display_name
Display names are case-sensitive, and may contain a variety of characters, such as spaces, that are not allowed in svector object names.
Examples
svec1.displayname List of Names
svec1.label
The first line attaches a display name “List of Names” to the svector object SVEC1, and the second line displays the label view of SVEC1, including its display name.
Cross-references
See
“Labeling Objects” for a discussion of labels and display names.
Export svector to disk as an Excel 2007 XLSX, CSV, tab-delimited ASCII text, RTF, HTML, Enhanced Metafile, LaTeX, PDF, or Markdown file.
Syntax
svector_name.export(options) [path\]file_name
Follow the keyword with a name for the file. file_name may include the file type extension, or the file type may be specified using the “t=” option.
If an explicit path is not specified, the file will be stored in the default directory, as set in the global options.
The base syntax for writing Excel 2007 files is:
svector_name.export(options) [path\]file_name [table_description]
where the table_description may contain:
• “range = arg”, where arg is top left cell of the destination Excel workbook, following the standard Excel format [worksheet!][topleft_cell[:bottomright_cell]].
If the worksheet name contains spaces, it should be placed in single quotes. If the worksheet name is omitted, the cell range is assumed to refer to the currently active sheet. If only a top left cell is provided, a bottom right cell will be chosen automatically to cover the range of non-empty cells adjacent to the specified top left cell. If only a sheet name is provided, the first set of non-empty cells in the top left corner of the chosen worksheet will be selected automatically. As an alternative to specifying an explicit range, a name which has been defined inside the Excel workbook to refer to a range or cell may be used to specify the cells to read.
Options
t=file_type (default=“csv”) | Specifies the file type, where file_type may be one of: “excelxml” (Excel 2007 (xml)),“csv” (CSV - comma-separated), “rtf” (Rich-text format), “txt” (tab-delimited text), “html” (HTML - Hypertext Markup Language), “emf” (Enhanced Metafile), “pdf” (PDF - Portable Document Format), “tex” (LaTeX), or “md” (Markdown). Files will be saved with the “.xlsx”, “.csv”, “.rtf”, “.txt”, “.htm”, “.emf”, “.pdf”, “.tex”, or “.md” extensions, respectively. |
s=arg | Scale size, where arg is from 5 to 200, representing the percentage of the original table size (only valid for HTML or RTF files). |
n=string | Replace all cells that contain NA values with the specified string. “NA” is the default. |
h / -h | Include(/do not include) column and row headers. The default is to not include the headers |
prompt | Force the dialog to appear from within a program. |
PDF Options
landscape | Save in landscape mode (the default is to save in portrait mode). |
size=arg (default=“letter”) | Page size: “letter”, “legal”, “a4”, and “custom”. |
width=number (default=8.5) | Page width in inches if “size=custom”. |
height=number (default=11) | Page height in inches if “size=custom”. |
leftmargin=number (default=0.5) | Left margin width in inches. |
rightmargin=number (default = 0.5) | Right margin width in inches. |
topmargin=number (default=1) | Top margin width in inches. |
bottommargin= number (default = 1) | Bottom margin width in inches. |
LaTeX Options
texspec / -texspec | [Include / Do not include] the full LaTeX documentation specification in the LaTeX output. The default behavior is taken from the global default settings. |
Excel Options
mode=arg | Specify whether to create a new file, overwrite an existing file, or update an existing file. arg may be “create” (create new file only; error on attempt to overwrite) or “update” (update an existing file, only overwriting the area specified by the range= table_description). If the “mode=” option is not used, EViews will create a new file, unless the file already exists in which case it will overwrite it. Note that the “mode=update” option is only available for Excel in 1) Excel versions through 2003, if Excel is installed, and 2) Excel 2007 (xml). Note: Excel does not need to be installed for Excel 2007 writing. |
Excel 2007 Options
cellfmt=arg | Specify whether to use EViews, pre-existing, or remove cell formatting (colors, font, number formatting when possible, column widths and row heights) for the written range. arg may be “eviews” (replace current formatting in the file with the same cell formatting in EViews), “preserve” (leave current cell formatting already in the Excel file), or “clear” (remove current formatting and do not replace). |
strlen=arg (default = 256) | Specify the maximum the number of characters written for cells containing text. Strings in cells which are longer the max, will be truncated. |
Examples
The command:
svector1.export mysvector
exports data in SVECTOR1 to a CSV file named “mysvector.CSV” in the default directory.
svector1.export(h,t=csv, n="NaN") mysvector
saves the contents of SVECTOR1 along with the column and row headers to a CSV (comma separated value) file named “mysvector.CSV” and writes all NA values as “NaN”.
svector1.export(h,t=html, s=50) mysvector
writes the data of SVECTOR1 along with the column and row headers to a HTML file named “mysvector.HTM” at half of the original size.
svector1.export(n=".", r=B) mysvector
exports the data in the second column to a CSV file named “mysvector.CSV”, and writes all NA values as “.”.
svector1.export(t=excelxml, cellfmt=clear, mode=update) mysvector range=Country!b5
writes the data in SVECTOR1 to the preexisting “mysvector.XLSX” Excel file to the “Country” sheet at cell B5, where all cell formatting is cleared.
Cross-references
Fill a svector with the specified values.
Syntax
svector_name.fill(options) s1[s2 s3 …]
Follow the keyword with a list of strings to place in the svector object. Each value should be surrounded by double quotes if necessary, and values should separated by a space. Running out of values before the object is completely filled is not an error; the remaining cells or observations will be unaffected, unless the “l” option is specified to enable looping. If, however, you list more values than the object can hold, EViews will return an error message.
Options
l | Loop repeatedly over the list of values as many times as it takes to fill the vector. |
o=integer (default=1) | Fill the svector starting from the specified element. Default is the first element. |
Examples
sv1.fill a B c
sets the first element of SV1 to “a”, the second to “B” and the third to “c”.
sv1.fill(o=2) a "Hello World" name
sets the second element of SV1 to “a”, the third to “Hello World” and the fourth to “name”.
sv1.fill(o=4, l) first "" Last
sets the fourth element of SV1 to “first”, the fifth to be an empty string, and the sixth value to “Last”, then repeats the same three values for the remaining rows, so that the seventh element is set to “first”, the eight element is empty, the ninth set to “Last” and so on.
sv1.fill(l) ""
clears all of the values in the svector SV1.
An alternative approach to filling the elements of an svector uses the @sfill function to create a new svector in a single line, as in
svector vs2 = @fill("a", "Hello World", "name")
Cross-references
See
“Matrix Language” for a detailed discussion of vector and matrix manipulation in EViews.
Compute frequency tables.
freq performs a one-way frequency tabulation.
Frequencies are computed for all of the rows in the svector. Rows with missing values (blanks) are dropped unless included by option. You may use options to control the order of the entries of the table.
Syntax
svector_name.freq(options)
Options
dropna (default) / keepna | [Drop/Keep] NA as a category. |
n, obs, count (default) | Display frequency counts. |
nocount | Do not display frequency counts. |
prompt | Force the dialog to appear from within a program. |
p | Print the table. |
total (default) / nototal | [Display / Do not display] totals. |
pct (default) / nopct | [Display / Do not display] percent frequencies. |
cum (default) / nocum | (Display/Do not) display cumulative frequency counts/percentages. |
sort=arg (default=“lohi”) | Sort order for entries in the frequency table: high data value to low ("hilo"), low data value to high ("lohi" –default), high frequency to low ("freqhilo"), low frequency to high ("freqlohi"). |
prompt | Force the dialog to appear from within a program. |
p | Print the table. |
Examples
svec1.freq
tabulates each value of SVEC1 in ascending alphabetical order with counts, percentages, and cumulatives.
svec1.freq(keepna)
tabulates the values of SVEC1 including NAs.
svec1.freq(sort=hilo)
tabulates SVEC1 with the table rows ordered from values with highest frequency to lowest.
Cross-references
See
“One-Way Tabulation” for a discussion of frequency tables
Imports data from a foreign file into the svector object.
Syntax
svector_name.import([type=]) source_description import_specification
• source_description should contain a description of the file from which the data is to be imported. The specification of the description is usually just the path and file name of the file, however you can also specify more precise information. See
wfopen for more details on the specification of
source_description.
• The optional “type=” option may be used to specify a source type. For the most part, you should not need to specify a “type=” option as EViews will automatically determine the type from the filename. The following table summaries the various source formats and along with the corresponding “type=” keywords:
| |
Excel (through 2003) | “excel” |
Excel 2007 (xml) | “excelxml” |
HTML | “html” |
Text / ASCII | “text” |
• import_specification can be used to provide additional information about the file to be read. The details of import_specification will depend upon the type of file being imported.
Excel Files
The syntax for reading Excel files is:
svector_name.import(type=excel[xml]) source_description [table_description] [variables_description]
The following table_description elements may be used when reading Excel data:
• “range = arg”, where arg is a range of cells to read from the Excel workbook, following the standard Excel format [worksheet!][topleft_cell[:bottomright_cell]].
If the worksheet name contains spaces, it should be placed in single quotes. If the worksheet name is omitted, the cell range is assumed to refer to the currently active sheet. If only a top left cell is provided, a bottom right cell will be chosen automatically to cover the range of non-empty cells adjacent to the specified top left cell. If only a sheet name is provided, the first set of non-empty cells in the top left corner of the chosen worksheet will be selected automatically. As an alternative to specifying an explicit range, a name which has been defined inside the excel workbook to refer to a range or cell may be used to specify the cells to read.
• “byrow”, transpose the incoming data. This option allows you to read files where the series are contained in rows (one row per series) rather than columns.
The optional variables_description may be formed using the elements:
• “colhead=int”, number of table rows to be treated as column headers.
• “types=("arg1","arg2",…)”, user specified data types of the series. If types are provided they will override the types automatically detected by EViews. You may use any of the following format keywords: “a” (character data), “f” (numeric data), “d” (dates), or “w” (EViews automatic detection). This option is rarely required.
• “na="arg1"”, text used to represent observations that are missing from the file. The text should be enclosed on double quotes.
• “scan=[int| all]”, number of rows of the table to scan during automatic format detection (“scan=all” scans the entire file).
• “firstobs=int”, first observation to be imported from the data (default is 1). This option may be used to start reading rows from partway through the table.
• “lastobs = int”, last observation to be read from the data (default is last observation of the file). This option may be used to read only part of the file, which may be useful for testing.
Excel Examples
svec_obj.import "c:\data files\data.xls"
loads the active sheet of DATA.XLSX into the SVEC_NAME svector object.
svec_obj.import "c:\data files\data.xls" range="GDP data"
reads the data contained in the “GDP data” sheet of “Data.XLS” into the SVEC_OBJ object.
HTML Files
The syntax for reading HTML pages is:
svector_name.import(type=html) source_description [table_description] [variables_description]
The following table_description elements may be used when reading an HTML file or page:
• “table = arg”, where arg specifies which HTML table to read in an HTML file/page containing multiple tables.
When specifying arg, you should remember that tables are named automatically following the pattern “Table01”, “Table02”, “Table03”, etc. If no table name is specified, the largest table found in the file will be chosen by default. Note that the table numbering may include trivial tables that are part of the HTML content of the file, but would not normally be considered as data tables by a person viewing the page.
• “skip = int”, where int is the number of rows to discard from the top of the HTML table.
• “byrow”, transpose the incoming data. This option allows you to import files where the series are contained in rows (one row per series) rather than columns.
The optional variables_description may be formed using the elements:
• “colhead=int”, number of table rows to be treated as column headers.
• “na="arg1"”, text used to represent observations that are missing from the file. The text should be enclosed on double quotes.
• “scan=[int|all]”, number of rows of the table to scan during automatic format detection (“scan=all” scans the entire file).
• “firstobs=int”, first observation to be imported from the table of data (default is 1). This option may be used to start reading rows from partway through the table.
• “lastobs = int”, last observation to be read from the table of data (default is last observation of the file). This option may be used to read only part of the file, which may be useful for testing.
HTML Examples
svec1.import "c:\data.html"
loads into the SVEC1 svector object the data located in the HTML file “Data.HTML” located on the C:\ drive
svec1.import(type=html) "http://www.tradingroom.com.au/apps/mkt/forex.ac" colhead=3
loads into an svector object called SVEC1 the data with the given URL located on the website site “http://www.tradingroom.com.au”. The column header is set to three rows.
Text and Binary Files
The syntax for reading text or binary files is:
svector_name.import(type=arg) source_description [table_description] [variables_description]
If a table_description is not provided, EViews will attempt to read the file as a free-format text file. The following table_description elements may be used when reading a text or binary file:
• “ftype = [ascii|binary]” specifies whether numbers and dates in the file are stored in a human readable text (ASCII), or machine readable (Binary) form.
• “rectype = [crlf|fixed|streamed]” describes the record structure of the file:
“crlf”, each row in the output table is formed using a fixed number of lines from the file (where lines are separated by carriage return/line feed sequences). This is the default setting.
“fixed”, each row in the output table is formed using a fixed number of characters from the file (specified in “reclen= arg”). This setting is typically used for files that contain no line breaks.
“streamed”, each row in the output table is formed by reading a fixed number of fields, skipping across lines if necessary. This option is typically used for files that contain line breaks, but where the line breaks are not relevant to how rows from the data should be formed.
• “reclines =int”, number of lines to use in forming each row when “rectype=crlf” (default is 1).
• “reclen=int”, number of bytes to use in forming each row when “rectype=fixed”.
• “recfields=int”, number of fields to use in forming each row when “rectype=streamed”.
• “skip=int”, number of lines (if rectype is “crlf”) or bytes (if rectype is not “crlf”) to discard from the top of the file.
• “comment=string“, where string is a double-quoted string, specifies one or more characters to treat as a comment indicator. When a comment indicator is found, everything on the line to the right of where the comment indicator starts is ignored.
• “emptylines=[keep|drop]”, specifies whether empty lines should be ignored (“drop”), or treated as valid lines (“keep”) containing missing values. The default is to ignore empty lines.
• “tabwidth=int”, specifies the number of characters between tab stops when tabs are being replaced by spaces (default=8). Note that tabs are automatically replaced by spaces whenever they are not being treated as a field delimiter.
• “fieldtype=[delim|fixed|streamed|undivided]”, specifies the structure of fields within a record:
“Delim”, fields are separated by one or more delimiter characters
“Fixed”, each field is a fixed number of characters
“Streamed”, fields are read from left to right, with each field starting immediately after the previous field ends.
“Undivided”, read entire record as a single series.
• “quotes=[single|double|both|none]”, specifies the character used for quoting fields, where “single” is the apostrophe, “double” is the double quote character, and “both” means that either single or double quotes are allowed (default is “both”). Characters contained within quotes are never treated as delimiters.
• “singlequote“, same as “quotes = single”.
• “delim=[comma|tab|space|dblspace|white|dblwhite]”, specifies the character(s) to treat as a delimiter. “White” means that either a tab or a space is a valid delimiter. You may also use the abbreviation “d=” in place of “delim=”.
• “custom="arg1"”, specifies custom delimiter characters in the double quoted string. Use the character “t” for tab, “s” for space and “a” for any character.
• “mult=[on|off]”, to treat multiple delimiters as one. Default value is “on” if “delim” is “space”, “dblspace”, “white”, or “dblwhite”, and “off” otherwise.
• “endian = [big|little]”, selects the endianness of numeric fields contained in binary files.
• “string = [nullterm|nullpad|spacepad]”, specifies how strings are stored in binary files. If “nullterm”, strings shorter than the field width are terminated with a single zero character. If “nullpad”, strings shorter than the field width are followed by extra zero characters up to the field width. If “spacepad”, strings shorter than the field width are followed by extra space characters up to the field width.
• “byrow”, transpose the incoming data. This option allows you to import files where the series are contained in rows (one row per series) rather than columns.
• “lastcol”, include implied last column. For lines that end with a delimiter, this option adds an additional column.
When importing a CSV file, lines which have the delimiter as the last character (for example: ‘name,description,date,’), EViews normally determines the line to have 3 columns. With the above option, EViews will determine the line to have 4 columns. Note this is not the same as a line containing ‘name,description,date’. In this case, EViews will always determine the line to have 3 columns regardless if the option is set.
A central component of the table_description element is the format statement. You may specify the data format using the following table descriptors:
• Fortran Format:
fformat=([n1]Type[Width][.Precision], [n2]Type[Width][.Precision], ...)
where Type specifies the underlying data type, and may be one of the following,
I - integer
F - fixed precision
E - scientific
A - alphanumeric
X - skip
and n1, n2, ... are the number of times to read using the descriptor (default=1). More complicated Fortran compatible variations on this format are possible.
• Column Range Format:
rformat="[n1]Type[Width][.Precision], [n2]Type[Width][.Precision], ...)"
where optional type is “$” for string or “#” for number, and n1, n2, n3, n4, etc. are the range of columns containing the data.
• C printf/scanf Format:
cformat="fmt"
where fmt follows standard C language (printf/scanf) format rules.
The optional variables_description may be formed using the elements:
• “colhead=int”, number of table rows to be treated as column headers.
• “types=("arg1","arg2",…)”, user specified data types of the series. If types are provided they will override the types automatically detected by EViews. You may use any of the following format keywords: “a” (character data), “f” (numeric data), “d” (dates), or “w” (EViews automatic detection). This option is rarely used.
• “na="arg1"”, text used to represent observations that are missing from the file. The text should be enclosed on double quotes.
• “scan=[int|all]”, number of rows of the table to scan during automatic format detection (“scan=all” scans the entire file).
• “firstobs=int”, first observation to be imported from the table of data (default is 1). This option may be used to start reading rows from partway through the table.
• “lastobs = int”, last observation to be read from the table of data (default is last observation of the file). This option may be used to read only part of the file, which may be useful for testing.
Text and Binary File Examples (.txt, .csv, etc.)
svec2.import c:\data.csv skip=5
reads “Data.CSV” into SVEC2, skipping the first 5 rows.
svec01.import(type=text) c:\date.txt delim=comma
loads the comma delimited data DATE.TXT into the SVEC01 svector object.
Cross-references
Display or change the label view of the string vector object, including the last modified date and display name (if any).
Syntax
svector_name.label
svector_name.label(options) text
Options
To modify the label, you should specify one of the following options along with optional text. If there is no text provided, the specified field will be cleared:
c | Clears all text fields in the label. |
d | Sets the description field to text. |
s | Sets the source field to text. |
u | Sets the units field to text. |
r | Appends text to the remarks field as an additional line. |
p | Print the label view. |
Examples
The following lines replace the remarks field of the string S1 with “Name of Dependent Variable from EQ3”:
s1.label(r)
s1.label(r) Name of Dependent Variable EQ3
Cross-references
See
“Labeling Objects” for a discussion of labels.
Push updates to OLE linked objects in open applications.
Syntax
svector_name.olepush
Cross-references
See
“Object Linking and Embedding (OLE)” for a discussion of using OLE with EViews.
Resize the svector object.
Syntax
svector_name.resize rows
Examples
svec1.resize 20
resizes the svector SVEC1 to 20 rows, retaining the contents of any existing elements and initializing new elements to the empty string “”.
Cross-references
Set the object attribute.
Syntax
svector_name.setattr(attr) attr_value
Sets the attribute attr to attr_value. Note that quoting the arguments may be required. Once added to an object, the attribute may be extracted using the @attr data member.
Examples
a.setattr(revised) never
String s = a.@attr("revised")
sets the “revised” attribute in the object A to the string “never”, and extracts the attribute into the string object S.
Cross-references
Set the column label in a svector object.
Syntax
svector_name.setcollabels label
Follow the setcollabels command with the column label. Note that the column label should not contain spaces unless it is enclosed in quotes.
Examples
svec1.setcollabels MyResults
sets the column label to “MyResults”.
Cross-references
Set the row labels in a svector object.
Syntax
svector_name.setrowlabels label1 label2 label3....
Follow the setrowlabels command with a space delimited list of row labels. Note that each row label should not contain spaces unless it is enclosed in quotes. If you provide fewer labels than there are rows, EViews will keep the corresponding default row names (“R11”, “R12”, etc...).
Examples
svec1.setrowlabels USA UK FRANCE
sets the row label for the first row in svector SVEC1 to USA, the second to UK, and the third to FRANCE.
Cross-references
Spreadsheet view of a string vector object.
Syntax
svector_name.sheet(options)
Options
p | Print the spreadsheet view. |
Examples
s01.sheet
displays the spreadsheet view of S01.
Displays the custom row and column labels of an svector spreadsheet.
Syntax
svector_name.showlabels mode
where mode is either 0 or 1 where 0 displays the default row and column labels and 1 displays the custom row and column labels (if present).
Examples
s1.showlabels 1
displays the custom row and column labels for the S1 spreadsheet. If custom labels have not been set the default labels will be displayed.
s1.showlabels 0
displays the default row and column labels for the S1 spreadsheet.
Cross-references
Declare a string vector object.
The svector command declares a string vector object.
Syntax
svector(n) stringvector_name
The svector keyword should be followed by a valid name. n is an optional length for the vector. If n is not provided, the resulting svector will be one element long.
Examples
svector alphavec
declares a string vector object named ALPHAVEC containing no text.
svector(20) alphavec
declares a 20 element svector.
Cross-references
See
“Strings” and
“String Vectors” for a discussion of strings and string vectors.