Network Action Set

Provides actions for network analysis

community Action

Detects communities of a graph.

CASL Syntax

network.community <result=results> <status=rc> /
deterministic=TRUE | FALSE,
display={
caseSensitive=TRUE | FALSE,
exclude=TRUE | FALSE,
excludeAll=TRUE | FALSE,
keyIsPath=TRUE | FALSE,
names={"string-1" <, "string-2", ...>},
pathType="LABEL" | "NAME",
traceNames=TRUE | FALSE
},
distributed=TRUE | FALSE,
fix="variable-name",
graph=integer,
indexOffset=integer,
links={
caslib="string",
computedOnDemand=TRUE | FALSE,
computedVars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>},
groupBy={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters},
required parameter name="table-name",
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
where="where-expression",
whereTable={
casLib="string"
importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}
required parameter name="table-name"
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}}
where="where-expression"
}
},
linksVar={
auxWeight="variable-name",
from="variable-name",
to="variable-name",
vars={"variable-name-1" <, "variable-name-2", ...>},
varsOut={"variable-name-1" <, "variable-name-2", ...>},
weight="variable-name"
},
logFreqTime=integer,
maxIters=integer,
multiLinks=TRUE | FALSE,
nodes={
caslib="string",
computedOnDemand=TRUE | FALSE,
computedVars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>},
importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters},
required parameter name="table-name",
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
where="where-expression",
whereTable={
casLib="string"
importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}
required parameter name="table-name"
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}}
where="where-expression"
}
},
nodesVar={
node="variable-name",
vars={"variable-name-1" <, "variable-name-2", ...>},
varsOut={"variable-name-1" <, "variable-name-2", ...>},
weight="variable-name"
},
nThreads=integer,
outCommLinks={
caslib="string",
compress=TRUE | FALSE,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outCommunity={
caslib="string",
compress=TRUE | FALSE,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outGraphList={
caslib="string",
compress=TRUE | FALSE,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outLevel={
caslib="string",
compress=TRUE | FALSE,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outLinks={
caslib="string",
compress=TRUE | FALSE,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outNodes={
caslib="string",
compress=TRUE | FALSE,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outOverlap={
caslib="string",
compress=TRUE | FALSE,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outputTables={
groupByVarsRaw=TRUE | FALSE,
includeAll=TRUE | FALSE,
names={"string-1" <, "string-2", ...>} | {key-1={casouttable-1} <, key-2={casouttable-2}, ...>},
repeated=TRUE | FALSE,
replace=TRUE | FALSE
},
resolutionList={double-1 <, double-2, ...>},
selfLinks=TRUE | FALSE,
standardizedLabels=TRUE | FALSE,
standardizedLabelsOut=TRUE | FALSE,
tolerance=double,
warmStart="variable-name"
;

Summary: Input and Output Tables

If a row includes a subparameter, you can specify the name, caslib, and so on in the subparameter. Otherwise, you can specify the name, caslib, and so on in the parameter.

Parameters for Reading Input Tables

Parameter

Subparameter

Description

 links

specifies the input data table that contains the graph link information.

 nodes

specifies the input data table that contains the graph node information.

Parameters for Creating Output Tables

Parameter

Subparameter

Description

 outCommLinks

specifies the output data table to describe the links between each community.

 outCommunity

specifies the output data table to contain properties about each community.

 outGraphList

specifies the output data table to contain summary information about in-memory graphs.

 outLevel

specifies the output data table to contain community information at different resolution levels.

 outLinks

specifies the output data table to contain the graph link information along with any results from the algorithms that calculate metrics on links.

 outNodes

specifies the output data table to contain the graph node information along with any results from the algorithms that calculate metrics on nodes.

 outOverlap

specifies the output data table to describe the intensity of each node. At the end of community detection, a node could have links that connect to multiple communities. The intensity of a node is computed as the sum of the link weights that connect to nodes in the specified community divided by the total link weights of the node. This data table is computationally expensive to produce, and it requires a large amount of disk space. Therefore, it is not produced if the value of the algorithm parameter is LABELPROPAGATION together with multiple resolution values in the resolutionList parameter. However, if the value of the algorithm parameter is LOUVAIN, the data table is produced and will contain only results corresponding to the smallest value of the resolutionList parameter.

 outputTables

names

lists the names of results tables to save as CAS tables on the server.

Parameter Descriptions

algorithm="LABELPROPAGATION" | "LOUVAIN"

specifies the algorithm to use for community detection.

Default LOUVAIN
LABELPROPAGATION

uses the label propagation algorithm.

LOUVAIN

uses the Louvain algorithm.

deterministic=TRUE | FALSE

when set to True, ensures that each invocation (with the same machine configuration and parameter settings) produces the same final result.

Default TRUE

direction="DIRECTED" | "UNDIRECTED"

specifies whether to consider the input graph as directed or undirected.

Default UNDIRECTED
DIRECTED

considers the input graph to be directed. In a directed graph, each link (i,j) has a direction that defines how something (such as information) can flow over that link. In link (i,j), the flow is from node i to node j. Node i is called the source (tail) node, and node j is called the sink (head) node.

UNDIRECTED

considers the input graph to be undirected. In an undirected graph, each link {i,j} has no direction, and the flow can be in either direction. That is, {i,j} = {j,i}.

display={displayTables}

specifies a list of results tables to send to the client for display.

For more information about specifying the display parameter, see the common displayTables parameter (Appendix A: Common Parameters).

distributed=TRUE | FALSE

when set to True, uses a distributed graph.

Default FALSE

fix="variable-name"

specifies the variable that defines groups of nodes to fix together for community detection. Each value of the variable must be a 32-bit integer greater than or equal to 0 or missing.

graph=integer

specifies the in-memory graph to use.

Default -1

indexOffset=integer

specifies the index offset for identifiers in the log and results output data tables. For example, if three entities are found, they are labeled entity 0, 1, and 2 by default. If the value of indexOffset is 4, the entities are labeled entity 4, 5, and 6.

Default 0
Minimum value 0

labelUpdateMode="ASYNCHRONOUS" | "SYNCHRONOUS"

specifies whether nodes update their labels according to the labels of their neighbors at the current iteration (asynchronous) or the previous iteration (synchronous).

Default SYNCHRONOUS
ASYNCHRONOUS

updates community labels asynchronously.

SYNCHRONOUS

updates community labels synchronously.

linkRemovalRatio=integer

specifies the percentage of small-weight links to be removed around each node neighborhood.

Default 10
Range 0–100

specifies the input data table that contains the graph link information.

Long form links={name="table-name"}
Shortcut form links="table-name"

The castable value can be one or more of the following:

specifies the caslib for the input table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

Alias compOnDemand
Default FALSE

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter. If you do not specify this parameter, then all variables from computedVarsProgram are automatically included.

Alias compVars

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies an expression for each computed variable that you include in the computedVars parameter.

Alias compPgm

specifies data source options.

Aliases options
dataSource

specifies the names of the variables to use for grouping results.

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies the settings for reading a table from a data source.

Alias import

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

specifies the name of the input table.

specifies the variables to use in the action.

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies an expression for subsetting the input data.

specifies an input table that contains rows to use as a WHERE filter. If the vars parameter is not specified, then all the variable names that are common to the input table and the filtering table are used to find matching rows. If the where parameter for the input table and this parameter are specified, then this filtering table is applied first.

The groupbytable value can be one or more of the following:

specifies the caslib for the filter table. By default, the active caslib is used.

specifies the settings for reading a table from a data source.

Alias import

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

specifies the name of the filter table.

specifies the variable names to use from the filter table.

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies an expression for subsetting the data from the filter table.

linksVar={linksVar}

specifies the data variable names for the links table.

For more information about specifying the linksVar parameter, see the common linksVar parameter (Appendix A: Common Parameters).

logFreqTime=integer

controls the frequency n (in seconds) for displaying iteration logs for some algorithms, where n can be any integer greater than or equal to 1. This parameter is useful for computationally intensive algorithms. Setting n too low can hurt algorithm performance.

Alias logFrequencyTime
Default 5
Minimum value 1

logLevel="AGGRESSIVE" | "BASIC" | "MODERATE" | "NONE"

controls the amount of information that is displayed in the SAS log.

Default BASIC
AGGRESSIVE

displays a more detailed summary of the input, output, and algorithmic processing.

BASIC

displays a brief summary of the algorithmic processing.

MODERATE

displays a moderately detailed summary of the input, output, and algorithmic processing.

NONE

turns off all action-related messages in the SAS log.

maxIters=integer

specifies the maximum number of iterations that the algorithm can run. The default value of this parameter is 20 when the value of the algorithm parameter is LOUVAIN or 100 when the value of the algorithm parameter is LABELPROPAGATION.

Minimum value 1

when set to True, includes multilinks when an input graph is read. By default, the value of this parameter is True for algorithms that support multilinks.

nodes={castable}

specifies the input data table that contains the graph node information.

Long form nodes={name="table-name"}
Shortcut form nodes="table-name"

The castable value can be one or more of the following:

caslib="string"

specifies the caslib for the input table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

computedOnDemand=TRUE | FALSE

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

Alias compOnDemand
Default FALSE
computedVars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter. If you do not specify this parameter, then all variables from computedVarsProgram are automatically included.

Alias compVars

The casinvardesc value can be one or more of the following:

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of the format field plus the length of the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

computedVarsProgram="string"

specifies an expression for each computed variable that you include in the computedVars parameter.

Alias compPgm
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>}

specifies data source options.

Aliases options
dataSource
importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Alias import

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the input table.

vars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the variables to use in the action.

The casinvardesc value can be one or more of the following:

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of the format field plus the length of the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the input data.

whereTable={groupbytable}

specifies an input table that contains rows to use as a WHERE filter. If the vars parameter is not specified, then all the variable names that are common to the input table and the filtering table are used to find matching rows. If the where parameter for the input table and this parameter are specified, then this filtering table is applied first.

The groupbytable value can be one or more of the following:

casLib="string"

specifies the caslib for the filter table. By default, the active caslib is used.

importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Alias import

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the filter table.

vars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the variable names to use from the filter table.

The casinvardesc value can be one or more of the following:

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of the format field plus the length of the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the data from the filter table.

nodesVar={nodesVar}

specifies the data variable names for the nodes table.

Long form nodesVar={node="variable-name"}
Shortcut form nodesVar="variable-name"

The nodesVar value can be one or more of the following:

node="variable-name"

specifies the data variable name for the nodes.

Default "node"
vars={"variable-name-1" <, "variable-name-2", ...>}

specifies the additional data variable names for node attributes.

varsOut={"variable-name-1" <, "variable-name-2", ...>}

specifies the output data variable names for node attributes.

weight="variable-name"

specifies the data variable name for the node weights.

Default "weight"

nThreads=integer

specifies the maximum number of threads to use for multithreaded processing.

Range 1–1024

specifies the output data table to describe the links between each community.

For more information about specifying the outCommLinks parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outCommunity={casouttable}

specifies the output data table to contain properties about each community.

For more information about specifying the outCommunity parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outGraphList={casouttable}

specifies the output data table to contain summary information about in-memory graphs.

For more information about specifying the outGraphList parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outLevel={casouttable}

specifies the output data table to contain community information at different resolution levels.

For more information about specifying the outLevel parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

specifies the output data table to contain the graph link information along with any results from the algorithms that calculate metrics on links.

For more information about specifying the outLinks parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outNodes={casouttable}

specifies the output data table to contain the graph node information along with any results from the algorithms that calculate metrics on nodes.

For more information about specifying the outNodes parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outOverlap={casouttable}

specifies the output data table to describe the intensity of each node. At the end of community detection, a node could have links that connect to multiple communities. The intensity of a node is computed as the sum of the link weights that connect to nodes in the specified community divided by the total link weights of the node. This data table is computationally expensive to produce, and it requires a large amount of disk space. Therefore, it is not produced if the value of the algorithm parameter is LABELPROPAGATION together with multiple resolution values in the resolutionList parameter. However, if the value of the algorithm parameter is LOUVAIN, the data table is produced and will contain only results corresponding to the smallest value of the resolutionList parameter.

For more information about specifying the outOverlap parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outputTables={outputTables}

lists the names of results tables to save as CAS tables on the server.

For more information about specifying the outputTables parameter, see the common outputTables parameter (Appendix A: Common Parameters).

Alias displayOut

recursive={recursive}

breaks down large communities into smaller ones until the specified conditions are satisfied. This parameter starts with the keyword recursive followed by any combination of three subparameters enclosed in parentheses.

The recursive value can be one or more of the following:

maxCommSize=integer

specifies the maximum number of nodes to be contained in any community. The default is the largest number that can be represented by a 32-bit integer.

Minimum value 1
maxDiameter=integer

specifies the maximum number of links on the shortest path between any pair of nodes in any community. This parameter is ignored when you specify the synchronous label propagation algorithm. The default is the largest number that can be represented by a 32-bit integer.

Minimum value 1
relation="AND" | "OR"

specifies the relationship between the values of the maxCommSize and maxDiameter parameters.

Default OR
AND

the recursive splitting continues until both the maximum community size and the maximum diameter conditions are satisfied.

OR

the recursive splitting continues until either the maximum community size or the maximum diameter condition is satisfied.

resolutionList={double-1 <, double-2, ...>}

specifies a list of resolution values (nonnegative numbers) that are separated by spaces (for example, 4.3 2.1 1.0 0.6 0.2).

when set to True, includes self-links when an input graph is read.

Default TRUE

standardizedLabels=TRUE | FALSE

when set to True, specifies that the input graph data are in a standardized format.

Default FALSE

standardizedLabelsOut=TRUE | FALSE

when set to True, requests that the output graph data include standardized format.

Default FALSE

tolerance=double

specifies the tolerance value for when to stop iterations. The Louvain algorithm stops iterations when the percentage modularity gain between two consecutive iterations is less than this value. The label propagation algorithm stops iterations when the percentage of label changes for all nodes in the graph is less than this value. The valid range is strictly between 0 and 1. By default, the tolerance is 0.001 for the Louvain algorithm and the asynchronous label propagation algorithm, or 0.05 for the synchronous label propagation algorithm.

Alias modularity
Range (0, 1)

warmStart="variable-name"

specifies the variable that defines initial community identifiers for warm starting community detection. Each value of the variable must be a 32-bit integer greater than or equal to 0 or missing.

Result Descriptions

ProblemSummary

contains a basic summary of the graph input. The result is a table. You can access the value from results.ProblemSummary.

SolutionSummary

contains a basic solution summary for the algorithm. The result is a table. You can access the value from results.SolutionSummary.

solutionStatus

indicates the solution status of the selected problem type (algorithm class). The result is a string. You can access the value from results.solutionStatus.

community Action

Detects communities of a graph.

Lua Syntax

results, info = s:network_community{
deterministic=true | false,
display={
caseSensitive=true | false,
exclude=true | false,
excludeAll=true | false,
keyIsPath=true | false,
names={"string-1" <, "string-2", ...>},
pathType="LABEL" | "NAME",
traceNames=true | false
},
distributed=true | false,
fix="variable-name",
graph=integer,
indexOffset=integer,
links={
caslib="string",
computedOnDemand=true | false,
computedVars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>},
groupBy={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters},
required parameter name="table-name",
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
where="where-expression",
whereTable={
casLib="string"
importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}
required parameter name="table-name"
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}}
where="where-expression"
}
},
linksVar={
auxWeight="variable-name",
from="variable-name",
to="variable-name",
vars={"variable-name-1" <, "variable-name-2", ...>},
varsOut={"variable-name-1" <, "variable-name-2", ...>},
weight="variable-name"
},
logFreqTime=integer,
maxIters=integer,
multiLinks=true | false,
nodes={
caslib="string",
computedOnDemand=true | false,
computedVars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>},
importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters},
required parameter name="table-name",
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
where="where-expression",
whereTable={
casLib="string"
importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}
required parameter name="table-name"
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}}
where="where-expression"
}
},
nodesVar={
node="variable-name",
vars={"variable-name-1" <, "variable-name-2", ...>},
varsOut={"variable-name-1" <, "variable-name-2", ...>},
weight="variable-name"
},
nThreads=integer,
outCommLinks={
caslib="string",
compress=true | false,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=true | false,
replace=true | false,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outCommunity={
caslib="string",
compress=true | false,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=true | false,
replace=true | false,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outGraphList={
caslib="string",
compress=true | false,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=true | false,
replace=true | false,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outLevel={
caslib="string",
compress=true | false,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=true | false,
replace=true | false,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outLinks={
caslib="string",
compress=true | false,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=true | false,
replace=true | false,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outNodes={
caslib="string",
compress=true | false,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=true | false,
replace=true | false,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outOverlap={
caslib="string",
compress=true | false,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=true | false,
replace=true | false,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
outputTables={
groupByVarsRaw=true | false,
includeAll=true | false,
names={"string-1" <, "string-2", ...>} | {key-1={casouttable-1} <, key-2={casouttable-2}, ...>},
repeated=true | false,
replace=true | false
},
resolutionList={double-1 <, double-2, ...>},
selfLinks=true | false,
standardizedLabels=true | false,
standardizedLabelsOut=true | false,
tolerance=double,
warmStart="variable-name"
}

Summary: Input and Output Tables

If a row includes a subparameter, you can specify the name, caslib, and so on in the subparameter. Otherwise, you can specify the name, caslib, and so on in the parameter.

Parameters for Reading Input Tables

Parameter

Subparameter

Description

 links

specifies the input data table that contains the graph link information.

 nodes

specifies the input data table that contains the graph node information.

Parameters for Creating Output Tables

Parameter

Subparameter

Description

 outCommLinks

specifies the output data table to describe the links between each community.

 outCommunity

specifies the output data table to contain properties about each community.

 outGraphList

specifies the output data table to contain summary information about in-memory graphs.

 outLevel

specifies the output data table to contain community information at different resolution levels.

 outLinks

specifies the output data table to contain the graph link information along with any results from the algorithms that calculate metrics on links.

 outNodes

specifies the output data table to contain the graph node information along with any results from the algorithms that calculate metrics on nodes.

 outOverlap

specifies the output data table to describe the intensity of each node. At the end of community detection, a node could have links that connect to multiple communities. The intensity of a node is computed as the sum of the link weights that connect to nodes in the specified community divided by the total link weights of the node. This data table is computationally expensive to produce, and it requires a large amount of disk space. Therefore, it is not produced if the value of the algorithm parameter is LABELPROPAGATION together with multiple resolution values in the resolutionList parameter. However, if the value of the algorithm parameter is LOUVAIN, the data table is produced and will contain only results corresponding to the smallest value of the resolutionList parameter.

 outputTables

names

lists the names of results tables to save as CAS tables on the server.

Parameter Descriptions

algorithm="LABELPROPAGATION" | "LOUVAIN"

specifies the algorithm to use for community detection.

Default LOUVAIN
LABELPROPAGATION

uses the label propagation algorithm.

LOUVAIN

uses the Louvain algorithm.

deterministic=true | false

when set to True, ensures that each invocation (with the same machine configuration and parameter settings) produces the same final result.

Default true

direction="DIRECTED" | "UNDIRECTED"

specifies whether to consider the input graph as directed or undirected.

Default UNDIRECTED
DIRECTED

considers the input graph to be directed. In a directed graph, each link (i,j) has a direction that defines how something (such as information) can flow over that link. In link (i,j), the flow is from node i to node j. Node i is called the source (tail) node, and node j is called the sink (head) node.

UNDIRECTED

considers the input graph to be undirected. In an undirected graph, each link {i,j} has no direction, and the flow can be in either direction. That is, {i,j} = {j,i}.

display={displayTables}

specifies a list of results tables to send to the client for display.

For more information about specifying the display parameter, see the common displayTables parameter (Appendix A: Common Parameters).

distributed=true | false

when set to True, uses a distributed graph.

Default false

fix="variable-name"

specifies the variable that defines groups of nodes to fix together for community detection. Each value of the variable must be a 32-bit integer greater than or equal to 0 or missing.

graph=integer

specifies the in-memory graph to use.

Default -1

indexOffset=integer

specifies the index offset for identifiers in the log and results output data tables. For example, if three entities are found, they are labeled entity 0, 1, and 2 by default. If the value of indexOffset is 4, the entities are labeled entity 4, 5, and 6.

Default 0
Minimum value 0

labelUpdateMode="ASYNCHRONOUS" | "SYNCHRONOUS"

specifies whether nodes update their labels according to the labels of their neighbors at the current iteration (asynchronous) or the previous iteration (synchronous).

Default SYNCHRONOUS
ASYNCHRONOUS

updates community labels asynchronously.

SYNCHRONOUS

updates community labels synchronously.

linkRemovalRatio=integer

specifies the percentage of small-weight links to be removed around each node neighborhood.

Default 10
Range 0–100

specifies the input data table that contains the graph link information.

Long form links={name="table-name"}
Shortcut form links="table-name"

The castable value can be one or more of the following:

specifies the caslib for the input table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

Alias compOnDemand
Default false

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter. If you do not specify this parameter, then all variables from computedVarsProgram are automatically included.

Alias compVars

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies an expression for each computed variable that you include in the computedVars parameter.

Alias compPgm

specifies data source options.

Aliases options
dataSource

specifies the names of the variables to use for grouping results.

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies the settings for reading a table from a data source.

Alias import

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

specifies the name of the input table.

specifies the variables to use in the action.

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies an expression for subsetting the input data.

specifies an input table that contains rows to use as a WHERE filter. If the vars parameter is not specified, then all the variable names that are common to the input table and the filtering table are used to find matching rows. If the where parameter for the input table and this parameter are specified, then this filtering table is applied first.

The groupbytable value can be one or more of the following:

specifies the caslib for the filter table. By default, the active caslib is used.

specifies the settings for reading a table from a data source.

Alias import

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

specifies the name of the filter table.

specifies the variable names to use from the filter table.

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies an expression for subsetting the data from the filter table.

linksVar={linksVar}

specifies the data variable names for the links table.

For more information about specifying the linksVar parameter, see the common linksVar parameter (Appendix A: Common Parameters).

logFreqTime=integer

controls the frequency n (in seconds) for displaying iteration logs for some algorithms, where n can be any integer greater than or equal to 1. This parameter is useful for computationally intensive algorithms. Setting n too low can hurt algorithm performance.

Alias logFrequencyTime
Default 5
Minimum value 1

logLevel="AGGRESSIVE" | "BASIC" | "MODERATE" | "NONE"

controls the amount of information that is displayed in the SAS log.

Default BASIC
AGGRESSIVE

displays a more detailed summary of the input, output, and algorithmic processing.

BASIC

displays a brief summary of the algorithmic processing.

MODERATE

displays a moderately detailed summary of the input, output, and algorithmic processing.

NONE

turns off all action-related messages in the SAS log.

maxIters=integer

specifies the maximum number of iterations that the algorithm can run. The default value of this parameter is 20 when the value of the algorithm parameter is LOUVAIN or 100 when the value of the algorithm parameter is LABELPROPAGATION.

Minimum value 1

when set to True, includes multilinks when an input graph is read. By default, the value of this parameter is True for algorithms that support multilinks.

nodes={castable}

specifies the input data table that contains the graph node information.

Long form nodes={name="table-name"}
Shortcut form nodes="table-name"

The castable value can be one or more of the following:

caslib="string"

specifies the caslib for the input table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

computedOnDemand=true | false

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

Alias compOnDemand
Default false
computedVars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter. If you do not specify this parameter, then all variables from computedVarsProgram are automatically included.

Alias compVars

The casinvardesc value can be one or more of the following:

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of the format field plus the length of the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

computedVarsProgram="string"

specifies an expression for each computed variable that you include in the computedVars parameter.

Alias compPgm
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>}

specifies data source options.

Aliases options
dataSource
importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Alias import

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the input table.

vars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the variables to use in the action.

The casinvardesc value can be one or more of the following:

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of the format field plus the length of the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the input data.

whereTable={groupbytable}

specifies an input table that contains rows to use as a WHERE filter. If the vars parameter is not specified, then all the variable names that are common to the input table and the filtering table are used to find matching rows. If the where parameter for the input table and this parameter are specified, then this filtering table is applied first.

The groupbytable value can be one or more of the following:

casLib="string"

specifies the caslib for the filter table. By default, the active caslib is used.

importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Alias import

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the filter table.

vars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the variable names to use from the filter table.

The casinvardesc value can be one or more of the following:

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of the format field plus the length of the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the data from the filter table.

nodesVar={nodesVar}

specifies the data variable names for the nodes table.

Long form nodesVar={node="variable-name"}
Shortcut form nodesVar="variable-name"

The nodesVar value can be one or more of the following:

node="variable-name"

specifies the data variable name for the nodes.

Default "node"
vars={"variable-name-1" <, "variable-name-2", ...>}

specifies the additional data variable names for node attributes.

varsOut={"variable-name-1" <, "variable-name-2", ...>}

specifies the output data variable names for node attributes.

weight="variable-name"

specifies the data variable name for the node weights.

Default "weight"

nThreads=integer

specifies the maximum number of threads to use for multithreaded processing.

Range 1–1024

specifies the output data table to describe the links between each community.

For more information about specifying the outCommLinks parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outCommunity={casouttable}

specifies the output data table to contain properties about each community.

For more information about specifying the outCommunity parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outGraphList={casouttable}

specifies the output data table to contain summary information about in-memory graphs.

For more information about specifying the outGraphList parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outLevel={casouttable}

specifies the output data table to contain community information at different resolution levels.

For more information about specifying the outLevel parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

specifies the output data table to contain the graph link information along with any results from the algorithms that calculate metrics on links.

For more information about specifying the outLinks parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outNodes={casouttable}

specifies the output data table to contain the graph node information along with any results from the algorithms that calculate metrics on nodes.

For more information about specifying the outNodes parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outOverlap={casouttable}

specifies the output data table to describe the intensity of each node. At the end of community detection, a node could have links that connect to multiple communities. The intensity of a node is computed as the sum of the link weights that connect to nodes in the specified community divided by the total link weights of the node. This data table is computationally expensive to produce, and it requires a large amount of disk space. Therefore, it is not produced if the value of the algorithm parameter is LABELPROPAGATION together with multiple resolution values in the resolutionList parameter. However, if the value of the algorithm parameter is LOUVAIN, the data table is produced and will contain only results corresponding to the smallest value of the resolutionList parameter.

For more information about specifying the outOverlap parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outputTables={outputTables}

lists the names of results tables to save as CAS tables on the server.

For more information about specifying the outputTables parameter, see the common outputTables parameter (Appendix A: Common Parameters).

Alias displayOut

recursive={recursive}

breaks down large communities into smaller ones until the specified conditions are satisfied. This parameter starts with the keyword recursive followed by any combination of three subparameters enclosed in parentheses.

The recursive value can be one or more of the following:

maxCommSize=integer

specifies the maximum number of nodes to be contained in any community. The default is the largest number that can be represented by a 32-bit integer.

Minimum value 1
maxDiameter=integer

specifies the maximum number of links on the shortest path between any pair of nodes in any community. This parameter is ignored when you specify the synchronous label propagation algorithm. The default is the largest number that can be represented by a 32-bit integer.

Minimum value 1
relation="AND" | "OR"

specifies the relationship between the values of the maxCommSize and maxDiameter parameters.

Default OR
AND

the recursive splitting continues until both the maximum community size and the maximum diameter conditions are satisfied.

OR

the recursive splitting continues until either the maximum community size or the maximum diameter condition is satisfied.

resolutionList={double-1 <, double-2, ...>}

specifies a list of resolution values (nonnegative numbers) that are separated by spaces (for example, 4.3 2.1 1.0 0.6 0.2).

when set to True, includes self-links when an input graph is read.

Default true

standardizedLabels=true | false

when set to True, specifies that the input graph data are in a standardized format.

Default false

standardizedLabelsOut=true | false

when set to True, requests that the output graph data include standardized format.

Default false

tolerance=double

specifies the tolerance value for when to stop iterations. The Louvain algorithm stops iterations when the percentage modularity gain between two consecutive iterations is less than this value. The label propagation algorithm stops iterations when the percentage of label changes for all nodes in the graph is less than this value. The valid range is strictly between 0 and 1. By default, the tolerance is 0.001 for the Louvain algorithm and the asynchronous label propagation algorithm, or 0.05 for the synchronous label propagation algorithm.

Alias modularity
Range (0, 1)

warmStart="variable-name"

specifies the variable that defines initial community identifiers for warm starting community detection. Each value of the variable must be a 32-bit integer greater than or equal to 0 or missing.

Result Descriptions

ProblemSummary

contains a basic summary of the graph input. The result is a table. You can access the value from results.ProblemSummary.

SolutionSummary

contains a basic solution summary for the algorithm. The result is a table. You can access the value from results.SolutionSummary.

solutionStatus

indicates the solution status of the selected problem type (algorithm class). The result is a string. You can access the value from results.solutionStatus.

community Action

Detects communities of a graph.

Python Syntax

results=s.network.community(
deterministic=True | False,
display={
"caseSensitive":True | False,
"exclude":True | False,
"excludeAll":True | False,
"keyIsPath":True | False,
"names":["string-1" <, "string-2", ...>],
"pathType":"LABEL" | "NAME",
"traceNames":True | False
},
distributed=True | False,
fix="variable-name",
graph=integer,
indexOffset=integer,
links={
"caslib":"string",
"computedOnDemand":True | False,
"computedVars":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
"computedVarsProgram":"string",
"dataSourceOptions":{"key-1":{any-list-or-data-type-1} <, "key-2":{any-list-or-data-type-2}, ...>},
"groupBy":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
"importOptions":{"fileType":"ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters},
required parameter "name":"table-name",
"vars":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
"where":"where-expression",
"whereTable":{
"casLib":"string"
"importOptions":{"fileType":"ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}
required parameter "name":"table-name"
"vars":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>]
"where":"where-expression"
}
},
linksVar={
"auxWeight":"variable-name",
"from_":"variable-name",
"to":"variable-name",
"vars":["variable-name-1" <, "variable-name-2", ...>],
"varsOut":["variable-name-1" <, "variable-name-2", ...>],
"weight":"variable-name"
},
logFreqTime=integer,
maxIters=integer,
multiLinks=True | False,
nodes={
"caslib":"string",
"computedOnDemand":True | False,
"computedVars":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
"computedVarsProgram":"string",
"dataSourceOptions":{"key-1":{any-list-or-data-type-1} <, "key-2":{any-list-or-data-type-2}, ...>},
"importOptions":{"fileType":"ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters},
required parameter "name":"table-name",
"vars":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
"where":"where-expression",
"whereTable":{
"casLib":"string"
"importOptions":{"fileType":"ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}
required parameter "name":"table-name"
"vars":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>]
"where":"where-expression"
}
},
nodesVar={
"node":"variable-name",
"vars":["variable-name-1" <, "variable-name-2", ...>],
"varsOut":["variable-name-1" <, "variable-name-2", ...>],
"weight":"variable-name"
},
nThreads=integer,
outCommLinks={
"caslib":"string",
"compress":True | False,
"indexVars":["variable-name-1" <, "variable-name-2", ...>],
"label":"string",
"lifetime":64-bit-integer,
"maxMemSize":64-bit-integer,
"memoryFormat":"DVR" | "INHERIT" | "STANDARD",
"name":"table-name",
"promote":True | False,
"replace":True | False,
"replication":integer,
"tableRedistUpPolicy":"DEFER" | "NOREDIST" | "REBALANCE",
"threadBlockSize":64-bit-integer,
"timeStamp":"string",
"where":["string-1" <, "string-2", ...>]
},
outCommunity={
"caslib":"string",
"compress":True | False,
"indexVars":["variable-name-1" <, "variable-name-2", ...>],
"label":"string",
"lifetime":64-bit-integer,
"maxMemSize":64-bit-integer,
"memoryFormat":"DVR" | "INHERIT" | "STANDARD",
"name":"table-name",
"promote":True | False,
"replace":True | False,
"replication":integer,
"tableRedistUpPolicy":"DEFER" | "NOREDIST" | "REBALANCE",
"threadBlockSize":64-bit-integer,
"timeStamp":"string",
"where":["string-1" <, "string-2", ...>]
},
outGraphList={
"caslib":"string",
"compress":True | False,
"indexVars":["variable-name-1" <, "variable-name-2", ...>],
"label":"string",
"lifetime":64-bit-integer,
"maxMemSize":64-bit-integer,
"memoryFormat":"DVR" | "INHERIT" | "STANDARD",
"name":"table-name",
"promote":True | False,
"replace":True | False,
"replication":integer,
"tableRedistUpPolicy":"DEFER" | "NOREDIST" | "REBALANCE",
"threadBlockSize":64-bit-integer,
"timeStamp":"string",
"where":["string-1" <, "string-2", ...>]
},
outLevel={
"caslib":"string",
"compress":True | False,
"indexVars":["variable-name-1" <, "variable-name-2", ...>],
"label":"string",
"lifetime":64-bit-integer,
"maxMemSize":64-bit-integer,
"memoryFormat":"DVR" | "INHERIT" | "STANDARD",
"name":"table-name",
"promote":True | False,
"replace":True | False,
"replication":integer,
"tableRedistUpPolicy":"DEFER" | "NOREDIST" | "REBALANCE",
"threadBlockSize":64-bit-integer,
"timeStamp":"string",
"where":["string-1" <, "string-2", ...>]
},
outLinks={
"caslib":"string",
"compress":True | False,
"indexVars":["variable-name-1" <, "variable-name-2", ...>],
"label":"string",
"lifetime":64-bit-integer,
"maxMemSize":64-bit-integer,
"memoryFormat":"DVR" | "INHERIT" | "STANDARD",
"name":"table-name",
"promote":True | False,
"replace":True | False,
"replication":integer,
"tableRedistUpPolicy":"DEFER" | "NOREDIST" | "REBALANCE",
"threadBlockSize":64-bit-integer,
"timeStamp":"string",
"where":["string-1" <, "string-2", ...>]
},
outNodes={
"caslib":"string",
"compress":True | False,
"indexVars":["variable-name-1" <, "variable-name-2", ...>],
"label":"string",
"lifetime":64-bit-integer,
"maxMemSize":64-bit-integer,
"memoryFormat":"DVR" | "INHERIT" | "STANDARD",
"name":"table-name",
"promote":True | False,
"replace":True | False,
"replication":integer,
"tableRedistUpPolicy":"DEFER" | "NOREDIST" | "REBALANCE",
"threadBlockSize":64-bit-integer,
"timeStamp":"string",
"where":["string-1" <, "string-2", ...>]
},
outOverlap={
"caslib":"string",
"compress":True | False,
"indexVars":["variable-name-1" <, "variable-name-2", ...>],
"label":"string",
"lifetime":64-bit-integer,
"maxMemSize":64-bit-integer,
"memoryFormat":"DVR" | "INHERIT" | "STANDARD",
"name":"table-name",
"promote":True | False,
"replace":True | False,
"replication":integer,
"tableRedistUpPolicy":"DEFER" | "NOREDIST" | "REBALANCE",
"threadBlockSize":64-bit-integer,
"timeStamp":"string",
"where":["string-1" <, "string-2", ...>]
},
outputTables={
"groupByVarsRaw":True | False,
"includeAll":True | False,
"names":["string-1" <, "string-2", ...>] | {"key-1":{casouttable-1} <, "key-2":{casouttable-2}, ...>},
"repeated":True | False,
"replace":True | False
},
recursive={
"maxCommSize":integer,
"maxDiameter":integer,
},
resolutionList=[double-1 <, double-2, ...>],
selfLinks=True | False,
standardizedLabels=True | False,
standardizedLabelsOut=True | False,
tolerance=double,
warmStart="variable-name"
)

Summary: Input and Output Tables

If a row includes a subparameter, you can specify the name, caslib, and so on in the subparameter. Otherwise, you can specify the name, caslib, and so on in the parameter.

Parameters for Reading Input Tables

Parameter

Subparameter

Description

 links

specifies the input data table that contains the graph link information.

 nodes

specifies the input data table that contains the graph node information.

Parameters for Creating Output Tables

Parameter

Subparameter

Description

 outCommLinks

specifies the output data table to describe the links between each community.

 outCommunity

specifies the output data table to contain properties about each community.

 outGraphList

specifies the output data table to contain summary information about in-memory graphs.

 outLevel

specifies the output data table to contain community information at different resolution levels.

 outLinks

specifies the output data table to contain the graph link information along with any results from the algorithms that calculate metrics on links.

 outNodes

specifies the output data table to contain the graph node information along with any results from the algorithms that calculate metrics on nodes.

 outOverlap

specifies the output data table to describe the intensity of each node. At the end of community detection, a node could have links that connect to multiple communities. The intensity of a node is computed as the sum of the link weights that connect to nodes in the specified community divided by the total link weights of the node. This data table is computationally expensive to produce, and it requires a large amount of disk space. Therefore, it is not produced if the value of the algorithm parameter is LABELPROPAGATION together with multiple resolution values in the resolutionList parameter. However, if the value of the algorithm parameter is LOUVAIN, the data table is produced and will contain only results corresponding to the smallest value of the resolutionList parameter.

 outputTables

names

lists the names of results tables to save as CAS tables on the server.

Parameter Descriptions

algorithm="LABELPROPAGATION" | "LOUVAIN"

specifies the algorithm to use for community detection.

Default LOUVAIN
LABELPROPAGATION

uses the label propagation algorithm.

LOUVAIN

uses the Louvain algorithm.

deterministic=True | False

when set to True, ensures that each invocation (with the same machine configuration and parameter settings) produces the same final result.

Default True

direction="DIRECTED" | "UNDIRECTED"

specifies whether to consider the input graph as directed or undirected.

Default UNDIRECTED
DIRECTED

considers the input graph to be directed. In a directed graph, each link (i,j) has a direction that defines how something (such as information) can flow over that link. In link (i,j), the flow is from node i to node j. Node i is called the source (tail) node, and node j is called the sink (head) node.

UNDIRECTED

considers the input graph to be undirected. In an undirected graph, each link {i,j} has no direction, and the flow can be in either direction. That is, {i,j} = {j,i}.

display={displayTables}

specifies a list of results tables to send to the client for display.

For more information about specifying the display parameter, see the common displayTables parameter (Appendix A: Common Parameters).

distributed=True | False

when set to True, uses a distributed graph.

Default False

fix="variable-name"

specifies the variable that defines groups of nodes to fix together for community detection. Each value of the variable must be a 32-bit integer greater than or equal to 0 or missing.

graph=integer

specifies the in-memory graph to use.

Default -1

indexOffset=integer

specifies the index offset for identifiers in the log and results output data tables. For example, if three entities are found, they are labeled entity 0, 1, and 2 by default. If the value of indexOffset is 4, the entities are labeled entity 4, 5, and 6.

Default 0
Minimum value 0

labelUpdateMode="ASYNCHRONOUS" | "SYNCHRONOUS"

specifies whether nodes update their labels according to the labels of their neighbors at the current iteration (asynchronous) or the previous iteration (synchronous).

Default SYNCHRONOUS
ASYNCHRONOUS

updates community labels asynchronously.

SYNCHRONOUS

updates community labels synchronously.

linkRemovalRatio=integer

specifies the percentage of small-weight links to be removed around each node neighborhood.

Default 10
Range 0–100

specifies the input data table that contains the graph link information.

Long form links={"name":"table-name"}
Shortcut form links="table-name"

The castable value can be one or more of the following:

specifies the caslib for the input table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

Alias compOnDemand
Default False

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter. If you do not specify this parameter, then all variables from computedVarsProgram are automatically included.

Alias compVars

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies an expression for each computed variable that you include in the computedVars parameter.

Alias compPgm

specifies data source options.

Aliases options
dataSource

specifies the names of the variables to use for grouping results.

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies the settings for reading a table from a data source.

Alias import_

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

specifies the name of the input table.

specifies the variables to use in the action.

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies an expression for subsetting the input data.

specifies an input table that contains rows to use as a WHERE filter. If the vars parameter is not specified, then all the variable names that are common to the input table and the filtering table are used to find matching rows. If the where parameter for the input table and this parameter are specified, then this filtering table is applied first.

The groupbytable value can be one or more of the following:

specifies the caslib for the filter table. By default, the active caslib is used.

specifies the settings for reading a table from a data source.

Alias import_

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

specifies the name of the filter table.

specifies the variable names to use from the filter table.

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies an expression for subsetting the data from the filter table.

linksVar={linksVar}

specifies the data variable names for the links table.

For more information about specifying the linksVar parameter, see the common linksVar parameter (Appendix A: Common Parameters).

logFreqTime=integer

controls the frequency n (in seconds) for displaying iteration logs for some algorithms, where n can be any integer greater than or equal to 1. This parameter is useful for computationally intensive algorithms. Setting n too low can hurt algorithm performance.

Alias logFrequencyTime
Default 5
Minimum value 1

logLevel="AGGRESSIVE" | "BASIC" | "MODERATE" | "NONE"

controls the amount of information that is displayed in the SAS log.

Default BASIC
AGGRESSIVE

displays a more detailed summary of the input, output, and algorithmic processing.

BASIC

displays a brief summary of the algorithmic processing.

MODERATE

displays a moderately detailed summary of the input, output, and algorithmic processing.

NONE

turns off all action-related messages in the SAS log.

maxIters=integer

specifies the maximum number of iterations that the algorithm can run. The default value of this parameter is 20 when the value of the algorithm parameter is LOUVAIN or 100 when the value of the algorithm parameter is LABELPROPAGATION.

Minimum value 1

when set to True, includes multilinks when an input graph is read. By default, the value of this parameter is True for algorithms that support multilinks.

nodes={castable}

specifies the input data table that contains the graph node information.

Long form nodes={"name":"table-name"}
Shortcut form nodes="table-name"

The castable value can be one or more of the following:

"caslib":"string"

specifies the caslib for the input table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

"computedOnDemand":True | False

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

Alias compOnDemand
Default False
"computedVars":[{casinvardesc-1} <, {casinvardesc-2}, ...>]

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter. If you do not specify this parameter, then all variables from computedVarsProgram are automatically included.

Alias compVars

The casinvardesc value can be one or more of the following:

"format":"string"

specifies the format to apply to the variable.

"formattedLength":integer

specifies the length of the format field plus the length of the format precision.

"label":"string"

specifies the descriptive label for the variable.

* "name":"variable-name"

specifies the name for the variable.

"nfd":integer

specifies the length of the format precision.

"nfl":integer

specifies the length of the format field.

"computedVarsProgram":"string"

specifies an expression for each computed variable that you include in the computedVars parameter.

Alias compPgm
"dataSourceOptions":{"key-1":{any-list-or-data-type-1} <, "key-2":{any-list-or-data-type-2}, ...>}

specifies data source options.

Aliases options
dataSource
"importOptions":{"fileType":"ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Alias import_

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

* "name":"table-name"

specifies the name of the input table.

"vars":[{casinvardesc-1} <, {casinvardesc-2}, ...>]

specifies the variables to use in the action.

The casinvardesc value can be one or more of the following:

"format":"string"

specifies the format to apply to the variable.

"formattedLength":integer

specifies the length of the format field plus the length of the format precision.

"label":"string"

specifies the descriptive label for the variable.

* "name":"variable-name"

specifies the name for the variable.

"nfd":integer

specifies the length of the format precision.

"nfl":integer

specifies the length of the format field.

"where":"where-expression"

specifies an expression for subsetting the input data.

"whereTable":{groupbytable}

specifies an input table that contains rows to use as a WHERE filter. If the vars parameter is not specified, then all the variable names that are common to the input table and the filtering table are used to find matching rows. If the where parameter for the input table and this parameter are specified, then this filtering table is applied first.

The groupbytable value can be one or more of the following:

"casLib":"string"

specifies the caslib for the filter table. By default, the active caslib is used.

"importOptions":{"fileType":"ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Alias import_

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

* "name":"table-name"

specifies the name of the filter table.

"vars":[{casinvardesc-1} <, {casinvardesc-2}, ...>]

specifies the variable names to use from the filter table.

The casinvardesc value can be one or more of the following:

"format":"string"

specifies the format to apply to the variable.

"formattedLength":integer

specifies the length of the format field plus the length of the format precision.

"label":"string"

specifies the descriptive label for the variable.

* "name":"variable-name"

specifies the name for the variable.

"nfd":integer

specifies the length of the format precision.

"nfl":integer

specifies the length of the format field.

"where":"where-expression"

specifies an expression for subsetting the data from the filter table.

nodesVar={nodesVar}

specifies the data variable names for the nodes table.

Long form nodesVar={"node":"variable-name"}
Shortcut form nodesVar="variable-name"

The nodesVar value can be one or more of the following:

"node":"variable-name"

specifies the data variable name for the nodes.

Default "node"
"vars":["variable-name-1" <, "variable-name-2", ...>]

specifies the additional data variable names for node attributes.

"varsOut":["variable-name-1" <, "variable-name-2", ...>]

specifies the output data variable names for node attributes.

"weight":"variable-name"

specifies the data variable name for the node weights.

Default "weight"

nThreads=integer

specifies the maximum number of threads to use for multithreaded processing.

Range 1–1024

specifies the output data table to describe the links between each community.

For more information about specifying the outCommLinks parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outCommunity={casouttable}

specifies the output data table to contain properties about each community.

For more information about specifying the outCommunity parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outGraphList={casouttable}

specifies the output data table to contain summary information about in-memory graphs.

For more information about specifying the outGraphList parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outLevel={casouttable}

specifies the output data table to contain community information at different resolution levels.

For more information about specifying the outLevel parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

specifies the output data table to contain the graph link information along with any results from the algorithms that calculate metrics on links.

For more information about specifying the outLinks parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outNodes={casouttable}

specifies the output data table to contain the graph node information along with any results from the algorithms that calculate metrics on nodes.

For more information about specifying the outNodes parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outOverlap={casouttable}

specifies the output data table to describe the intensity of each node. At the end of community detection, a node could have links that connect to multiple communities. The intensity of a node is computed as the sum of the link weights that connect to nodes in the specified community divided by the total link weights of the node. This data table is computationally expensive to produce, and it requires a large amount of disk space. Therefore, it is not produced if the value of the algorithm parameter is LABELPROPAGATION together with multiple resolution values in the resolutionList parameter. However, if the value of the algorithm parameter is LOUVAIN, the data table is produced and will contain only results corresponding to the smallest value of the resolutionList parameter.

For more information about specifying the outOverlap parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outputTables={outputTables}

lists the names of results tables to save as CAS tables on the server.

For more information about specifying the outputTables parameter, see the common outputTables parameter (Appendix A: Common Parameters).

Alias displayOut

recursive={recursive}

breaks down large communities into smaller ones until the specified conditions are satisfied. This parameter starts with the keyword recursive followed by any combination of three subparameters enclosed in parentheses.

The recursive value can be one or more of the following:

"maxCommSize":integer

specifies the maximum number of nodes to be contained in any community. The default is the largest number that can be represented by a 32-bit integer.

Minimum value 1
"maxDiameter":integer

specifies the maximum number of links on the shortest path between any pair of nodes in any community. This parameter is ignored when you specify the synchronous label propagation algorithm. The default is the largest number that can be represented by a 32-bit integer.

Minimum value 1
"relation":"AND" | "OR"

specifies the relationship between the values of the maxCommSize and maxDiameter parameters.

Default OR
AND

the recursive splitting continues until both the maximum community size and the maximum diameter conditions are satisfied.

OR

the recursive splitting continues until either the maximum community size or the maximum diameter condition is satisfied.

resolutionList=[double-1 <, double-2, ...>]

specifies a list of resolution values (nonnegative numbers) that are separated by spaces (for example, 4.3 2.1 1.0 0.6 0.2).

when set to True, includes self-links when an input graph is read.

Default True

standardizedLabels=True | False

when set to True, specifies that the input graph data are in a standardized format.

Default False

standardizedLabelsOut=True | False

when set to True, requests that the output graph data include standardized format.

Default False

tolerance=double

specifies the tolerance value for when to stop iterations. The Louvain algorithm stops iterations when the percentage modularity gain between two consecutive iterations is less than this value. The label propagation algorithm stops iterations when the percentage of label changes for all nodes in the graph is less than this value. The valid range is strictly between 0 and 1. By default, the tolerance is 0.001 for the Louvain algorithm and the asynchronous label propagation algorithm, or 0.05 for the synchronous label propagation algorithm.

Alias modularity
Range (0, 1)

warmStart="variable-name"

specifies the variable that defines initial community identifiers for warm starting community detection. Each value of the variable must be a 32-bit integer greater than or equal to 0 or missing.

Result Descriptions

ProblemSummary

contains a basic summary of the graph input. The result is a table. You can access the value from results.ProblemSummary.

SolutionSummary

contains a basic solution summary for the algorithm. The result is a table. You can access the value from results.SolutionSummary.

solutionStatus

indicates the solution status of the selected problem type (algorithm class). The result is a string. You can access the value from results.solutionStatus.

community Action

Detects communities of a graph.

R Syntax

results <– cas.network.community(s,
deterministic=TRUE | FALSE,
display=list(
caseSensitive=TRUE | FALSE,
exclude=TRUE | FALSE,
excludeAll=TRUE | FALSE,
keyIsPath=TRUE | FALSE,
names=list("string-1" <, "string-2", ...>),
pathType="LABEL" | "NAME",
traceNames=TRUE | FALSE
),
distributed=TRUE | FALSE,
fix="variable-name",
graph=integer,
indexOffset=integer,
links=list(
caslib="string",
computedOnDemand=TRUE | FALSE,
computedVars=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
dataSourceOptions=list(key-1=list(any-list-or-data-type-1) <, key-2=list(any-list-or-data-type-2), ...>),
groupBy=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
importOptions=list(fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters),
required parameter name="table-name",
vars=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
where="where-expression",
whereTable=list(
casLib="string"
importOptions=list(fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters)
required parameter name="table-name"
vars=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>)
where="where-expression"
)
),
linksVar=list(
auxWeight="variable-name",
from="variable-name",
to="variable-name",
vars=list("variable-name-1" <, "variable-name-2", ...>),
varsOut=list("variable-name-1" <, "variable-name-2", ...>),
weight="variable-name"
),
logFreqTime=integer,
maxIters=integer,
multiLinks=TRUE | FALSE,
nodes=list(
caslib="string",
computedOnDemand=TRUE | FALSE,
computedVars=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
dataSourceOptions=list(key-1=list(any-list-or-data-type-1) <, key-2=list(any-list-or-data-type-2), ...>),
importOptions=list(fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters),
required parameter name="table-name",
vars=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
where="where-expression",
whereTable=list(
casLib="string"
importOptions=list(fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters)
required parameter name="table-name"
vars=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>)
where="where-expression"
)
),
nodesVar=list(
node="variable-name",
vars=list("variable-name-1" <, "variable-name-2", ...>),
varsOut=list("variable-name-1" <, "variable-name-2", ...>),
weight="variable-name"
),
nThreads=integer,
outCommLinks=list(
caslib="string",
compress=TRUE | FALSE,
indexVars=list("variable-name-1" <, "variable-name-2", ...>),
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where=list("string-1" <, "string-2", ...>)
),
outCommunity=list(
caslib="string",
compress=TRUE | FALSE,
indexVars=list("variable-name-1" <, "variable-name-2", ...>),
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where=list("string-1" <, "string-2", ...>)
),
outGraphList=list(
caslib="string",
compress=TRUE | FALSE,
indexVars=list("variable-name-1" <, "variable-name-2", ...>),
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where=list("string-1" <, "string-2", ...>)
),
outLevel=list(
caslib="string",
compress=TRUE | FALSE,
indexVars=list("variable-name-1" <, "variable-name-2", ...>),
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where=list("string-1" <, "string-2", ...>)
),
outLinks=list(
caslib="string",
compress=TRUE | FALSE,
indexVars=list("variable-name-1" <, "variable-name-2", ...>),
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where=list("string-1" <, "string-2", ...>)
),
outNodes=list(
caslib="string",
compress=TRUE | FALSE,
indexVars=list("variable-name-1" <, "variable-name-2", ...>),
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where=list("string-1" <, "string-2", ...>)
),
outOverlap=list(
caslib="string",
compress=TRUE | FALSE,
indexVars=list("variable-name-1" <, "variable-name-2", ...>),
label="string",
lifetime=64-bit-integer,
maxMemSize=64-bit-integer,
memoryFormat="DVR" | "INHERIT" | "STANDARD",
name="table-name",
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE",
threadBlockSize=64-bit-integer,
timeStamp="string",
where=list("string-1" <, "string-2", ...>)
),
outputTables=list(
groupByVarsRaw=TRUE | FALSE,
includeAll=TRUE | FALSE,
names=list("string-1" <, "string-2", ...>) | list(key-1=list(casouttable-1) <, key-2=list(casouttable-2), ...>),
repeated=TRUE | FALSE,
replace=TRUE | FALSE
),
recursive=list(
maxCommSize=integer,
maxDiameter=integer,
),
resolutionList=list(double-1 <, double-2, ...>),
selfLinks=TRUE | FALSE,
standardizedLabels=TRUE | FALSE,
standardizedLabelsOut=TRUE | FALSE,
tolerance=double,
warmStart="variable-name"
)

Summary: Input and Output Tables

If a row includes a subparameter, you can specify the name, caslib, and so on in the subparameter. Otherwise, you can specify the name, caslib, and so on in the parameter.

Parameters for Reading Input Tables

Parameter

Subparameter

Description

 links

specifies the input data table that contains the graph link information.

 nodes

specifies the input data table that contains the graph node information.

Parameters for Creating Output Tables

Parameter

Subparameter

Description

 outCommLinks

specifies the output data table to describe the links between each community.

 outCommunity

specifies the output data table to contain properties about each community.

 outGraphList

specifies the output data table to contain summary information about in-memory graphs.

 outLevel

specifies the output data table to contain community information at different resolution levels.

 outLinks

specifies the output data table to contain the graph link information along with any results from the algorithms that calculate metrics on links.

 outNodes

specifies the output data table to contain the graph node information along with any results from the algorithms that calculate metrics on nodes.

 outOverlap

specifies the output data table to describe the intensity of each node. At the end of community detection, a node could have links that connect to multiple communities. The intensity of a node is computed as the sum of the link weights that connect to nodes in the specified community divided by the total link weights of the node. This data table is computationally expensive to produce, and it requires a large amount of disk space. Therefore, it is not produced if the value of the algorithm parameter is LABELPROPAGATION together with multiple resolution values in the resolutionList parameter. However, if the value of the algorithm parameter is LOUVAIN, the data table is produced and will contain only results corresponding to the smallest value of the resolutionList parameter.

 outputTables

names

lists the names of results tables to save as CAS tables on the server.

Parameter Descriptions

algorithm="LABELPROPAGATION" | "LOUVAIN"

specifies the algorithm to use for community detection.

Default LOUVAIN
LABELPROPAGATION

uses the label propagation algorithm.

LOUVAIN

uses the Louvain algorithm.

deterministic=TRUE | FALSE

when set to True, ensures that each invocation (with the same machine configuration and parameter settings) produces the same final result.

Default TRUE

direction="DIRECTED" | "UNDIRECTED"

specifies whether to consider the input graph as directed or undirected.

Default UNDIRECTED
DIRECTED

considers the input graph to be directed. In a directed graph, each link (i,j) has a direction that defines how something (such as information) can flow over that link. In link (i,j), the flow is from node i to node j. Node i is called the source (tail) node, and node j is called the sink (head) node.

UNDIRECTED

considers the input graph to be undirected. In an undirected graph, each link {i,j} has no direction, and the flow can be in either direction. That is, {i,j} = {j,i}.

display=list(displayTables)

specifies a list of results tables to send to the client for display.

For more information about specifying the display parameter, see the common displayTables parameter (Appendix A: Common Parameters).

distributed=TRUE | FALSE

when set to True, uses a distributed graph.

Default FALSE

fix="variable-name"

specifies the variable that defines groups of nodes to fix together for community detection. Each value of the variable must be a 32-bit integer greater than or equal to 0 or missing.

graph=integer

specifies the in-memory graph to use.

Default -1

indexOffset=integer

specifies the index offset for identifiers in the log and results output data tables. For example, if three entities are found, they are labeled entity 0, 1, and 2 by default. If the value of indexOffset is 4, the entities are labeled entity 4, 5, and 6.

Default 0
Minimum value 0

labelUpdateMode="ASYNCHRONOUS" | "SYNCHRONOUS"

specifies whether nodes update their labels according to the labels of their neighbors at the current iteration (asynchronous) or the previous iteration (synchronous).

Default SYNCHRONOUS
ASYNCHRONOUS

updates community labels asynchronously.

SYNCHRONOUS

updates community labels synchronously.

linkRemovalRatio=integer

specifies the percentage of small-weight links to be removed around each node neighborhood.

Default 10
Range 0–100

specifies the input data table that contains the graph link information.

Long form links=list(name="table-name")
Shortcut form links="table-name"

The castable value can be one or more of the following:

specifies the caslib for the input table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

Alias compOnDemand
Default FALSE

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter. If you do not specify this parameter, then all variables from computedVarsProgram are automatically included.

Alias compVars

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies an expression for each computed variable that you include in the computedVars parameter.

Alias compPgm

specifies data source options.

Aliases options
dataSource

specifies the names of the variables to use for grouping results.

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies the settings for reading a table from a data source.

Alias import

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

specifies the name of the input table.

specifies the variables to use in the action.

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies an expression for subsetting the input data.

specifies an input table that contains rows to use as a WHERE filter. If the vars parameter is not specified, then all the variable names that are common to the input table and the filtering table are used to find matching rows. If the where parameter for the input table and this parameter are specified, then this filtering table is applied first.

The groupbytable value can be one or more of the following:

specifies the caslib for the filter table. By default, the active caslib is used.

specifies the settings for reading a table from a data source.

Alias import

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

specifies the name of the filter table.

specifies the variable names to use from the filter table.

The casinvardesc value can be one or more of the following:

specifies the format to apply to the variable.

specifies the length of the format field plus the length of the format precision.

specifies the descriptive label for the variable.

specifies the name for the variable.

specifies the length of the format precision.

specifies the length of the format field.

specifies an expression for subsetting the data from the filter table.

linksVar=list(linksVar)

specifies the data variable names for the links table.

For more information about specifying the linksVar parameter, see the common linksVar parameter (Appendix A: Common Parameters).

logFreqTime=integer

controls the frequency n (in seconds) for displaying iteration logs for some algorithms, where n can be any integer greater than or equal to 1. This parameter is useful for computationally intensive algorithms. Setting n too low can hurt algorithm performance.

Alias logFrequencyTime
Default 5
Minimum value 1

logLevel="AGGRESSIVE" | "BASIC" | "MODERATE" | "NONE"

controls the amount of information that is displayed in the SAS log.

Default BASIC
AGGRESSIVE

displays a more detailed summary of the input, output, and algorithmic processing.

BASIC

displays a brief summary of the algorithmic processing.

MODERATE

displays a moderately detailed summary of the input, output, and algorithmic processing.

NONE

turns off all action-related messages in the SAS log.

maxIters=integer

specifies the maximum number of iterations that the algorithm can run. The default value of this parameter is 20 when the value of the algorithm parameter is LOUVAIN or 100 when the value of the algorithm parameter is LABELPROPAGATION.

Minimum value 1

when set to True, includes multilinks when an input graph is read. By default, the value of this parameter is True for algorithms that support multilinks.

nodes=list(castable)

specifies the input data table that contains the graph node information.

Long form nodes=list(name="table-name")
Shortcut form nodes="table-name"

The castable value can be one or more of the following:

caslib="string"

specifies the caslib for the input table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

computedOnDemand=TRUE | FALSE

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

Alias compOnDemand
Default FALSE
computedVars=list( list(casinvardesc-1) <, list(casinvardesc-2), ...>)

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter. If you do not specify this parameter, then all variables from computedVarsProgram are automatically included.

Alias compVars

The casinvardesc value can be one or more of the following:

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of the format field plus the length of the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

computedVarsProgram="string"

specifies an expression for each computed variable that you include in the computedVars parameter.

Alias compPgm
dataSourceOptions=list(key-1=list(any-list-or-data-type-1) <, key-2=list(any-list-or-data-type-2), ...>)

specifies data source options.

Aliases options
dataSource
importOptions=list(fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters)

specifies the settings for reading a table from a data source.

Alias import

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the input table.

vars=list( list(casinvardesc-1) <, list(casinvardesc-2), ...>)

specifies the variables to use in the action.

The casinvardesc value can be one or more of the following:

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of the format field plus the length of the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the input data.

whereTable=list(groupbytable)

specifies an input table that contains rows to use as a WHERE filter. If the vars parameter is not specified, then all the variable names that are common to the input table and the filtering table are used to find matching rows. If the where parameter for the input table and this parameter are specified, then this filtering table is applied first.

The groupbytable value can be one or more of the following:

casLib="string"

specifies the caslib for the filter table. By default, the active caslib is used.

importOptions=list(fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters)

specifies the settings for reading a table from a data source.

Alias import

For more information about specifying the importOptions parameter, see the common importOptions parameter (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the filter table.

vars=list( list(casinvardesc-1) <, list(casinvardesc-2), ...>)

specifies the variable names to use from the filter table.

The casinvardesc value can be one or more of the following:

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of the format field plus the length of the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the data from the filter table.

nodesVar=list(nodesVar)

specifies the data variable names for the nodes table.

Long form nodesVar=list(node="variable-name")
Shortcut form nodesVar="variable-name"

The nodesVar value can be one or more of the following:

node="variable-name"

specifies the data variable name for the nodes.

Default "node"
vars=list("variable-name-1" <, "variable-name-2", ...>)

specifies the additional data variable names for node attributes.

varsOut=list("variable-name-1" <, "variable-name-2", ...>)

specifies the output data variable names for node attributes.

weight="variable-name"

specifies the data variable name for the node weights.

Default "weight"

nThreads=integer

specifies the maximum number of threads to use for multithreaded processing.

Range 1–1024

specifies the output data table to describe the links between each community.

For more information about specifying the outCommLinks parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outCommunity=list(casouttable)

specifies the output data table to contain properties about each community.

For more information about specifying the outCommunity parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outGraphList=list(casouttable)

specifies the output data table to contain summary information about in-memory graphs.

For more information about specifying the outGraphList parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outLevel=list(casouttable)

specifies the output data table to contain community information at different resolution levels.

For more information about specifying the outLevel parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

specifies the output data table to contain the graph link information along with any results from the algorithms that calculate metrics on links.

For more information about specifying the outLinks parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outNodes=list(casouttable)

specifies the output data table to contain the graph node information along with any results from the algorithms that calculate metrics on nodes.

For more information about specifying the outNodes parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outOverlap=list(casouttable)

specifies the output data table to describe the intensity of each node. At the end of community detection, a node could have links that connect to multiple communities. The intensity of a node is computed as the sum of the link weights that connect to nodes in the specified community divided by the total link weights of the node. This data table is computationally expensive to produce, and it requires a large amount of disk space. Therefore, it is not produced if the value of the algorithm parameter is LABELPROPAGATION together with multiple resolution values in the resolutionList parameter. However, if the value of the algorithm parameter is LOUVAIN, the data table is produced and will contain only results corresponding to the smallest value of the resolutionList parameter.

For more information about specifying the outOverlap parameter, see the common casouttable (Form 1) parameter (Appendix A: Common Parameters).

outputTables=list(outputTables)

lists the names of results tables to save as CAS tables on the server.

For more information about specifying the outputTables parameter, see the common outputTables parameter (Appendix A: Common Parameters).

Alias displayOut

recursive=list(recursive)

breaks down large communities into smaller ones until the specified conditions are satisfied. This parameter starts with the keyword recursive followed by any combination of three subparameters enclosed in parentheses.

The recursive value can be one or more of the following:

maxCommSize=integer

specifies the maximum number of nodes to be contained in any community. The default is the largest number that can be represented by a 32-bit integer.

Minimum value 1
maxDiameter=integer

specifies the maximum number of links on the shortest path between any pair of nodes in any community. This parameter is ignored when you specify the synchronous label propagation algorithm. The default is the largest number that can be represented by a 32-bit integer.

Minimum value 1
relation="AND" | "OR"

specifies the relationship between the values of the maxCommSize and maxDiameter parameters.

Default OR
AND

the recursive splitting continues until both the maximum community size and the maximum diameter conditions are satisfied.

OR

the recursive splitting continues until either the maximum community size or the maximum diameter condition is satisfied.

resolutionList=list(double-1 <, double-2, ...>)

specifies a list of resolution values (nonnegative numbers) that are separated by spaces (for example, 4.3 2.1 1.0 0.6 0.2).

when set to True, includes self-links when an input graph is read.

Default TRUE

standardizedLabels=TRUE | FALSE

when set to True, specifies that the input graph data are in a standardized format.

Default FALSE

standardizedLabelsOut=TRUE | FALSE

when set to True, requests that the output graph data include standardized format.

Default FALSE

tolerance=double

specifies the tolerance value for when to stop iterations. The Louvain algorithm stops iterations when the percentage modularity gain between two consecutive iterations is less than this value. The label propagation algorithm stops iterations when the percentage of label changes for all nodes in the graph is less than this value. The valid range is strictly between 0 and 1. By default, the tolerance is 0.001 for the Louvain algorithm and the asynchronous label propagation algorithm, or 0.05 for the synchronous label propagation algorithm.

Alias modularity
Range (0, 1)

warmStart="variable-name"

specifies the variable that defines initial community identifiers for warm starting community detection. Each value of the variable must be a 32-bit integer greater than or equal to 0 or missing.

Result Descriptions

ProblemSummary

contains a basic summary of the graph input. The result is a table. You can access the value from results.ProblemSummary.

SolutionSummary

contains a basic solution summary for the algorithm. The result is a table. You can access the value from results.SolutionSummary.

solutionStatus

indicates the solution status of the selected problem type (algorithm class). The result is a string. You can access the value from results.solutionStatus.

Last updated: November 23, 2025