# Outputs the survey projection onto the agent or symbolic layer

Source:`R/projection.R`

`make_projection.Rd`

`make_projection()`

outputs the agent or symbolic network corresponding
to a survey, i.e. the row or column projection.

## Usage

```
make_projection(
data,
layer,
threshold_method = NULL,
method_value = NULL,
centre = NULL,
similarity_metric = NULL
)
```

## Arguments

- data
A data frame corresponding to a survey

- layer
A string flag specifying which layer to project

`"agent"`

produces the network corresponding to the agents, which we assume to be rows in`data`

`"symbolic"`

produces the network corresponding to the symbols, or items, which we assume to be columns in`data`

- threshold_method
A string flag specifying how edges are selected in the network representation.

`"raw_similarity"`

means we remove all edges whose weight, meaning node similarity, is below a specified threshold.`"target_lcc"`

finds the value of the threshold that results in the network whose largest connected component is as close as possible to a specified value. In general a range of thresholds will satisfy this condition, and we choose the upper limit of this range.`"target_ad"`

finds the value of the threshold that results in the network whose average degree is as close as possible to a specified value.

- method_value
A utility variable that we interpret according to the

`threshold_method`

chosen.If

`threshold_method = "raw_similarity"`

, then`method_value`

is interpreted as the similarity threshold, and thus is in the range`[-1, 1]`

. A value of -1 means no edges are removed, and a value of 1 means all edges are removed.If

`threshold_method = "target_lcc"`

, then`method_value`

is interpreted as the desired fractional size of the largest connected component, in the range`[0, 1]`

. E.g., when set to 0, no nodes are connected, and if set to 1, the network is as sparse as possible while remaining fully connected.If

`threshold_method = "target_ad"`

, then`method_value`

is interpreted as the desired average degree. We assume that`method_value`

is normalised to the range`[0, 1]`

When`method_value = 0`

, then no nodes are connected, and if`method_value = 1`

, the network is complete, meaning it contains every possible edge.

- centre
If

`FALSE`

, we shift edge weights by 1 from`[-1, 1]`

to`[0, 2]`

. Defaults to TRUE.- similarity_metric
This currently has just one allowed value, namely the Manhattan distance, which is the default.

## Value

A data frame corresponding to the edge list of the specified network. It contains three columns named

`u`

, the first node adjacent to the edge`v`

, the second node adjacent to the edge, and`weight`

, the similarity between nodes`u`

and`v`

## Examples

```
S <- make_synthetic_data(20, 5)
```