make.merge: Make an aggregation matrix to perform mergers

View source: R/make.merge.R

make.mergeR Documentation

Make an aggregation matrix to perform mergers

Description

Make an aggregation matrix to perform mergers of firms. The matrix can be post multiplied (matrix multiplication) to input and output matrices to make merged input and output matrices.

Usage

make.merge(grp, nFirm = NULL, X = NULL, names = NULL)

Arguments

grp

Either a list of length Kg for Kg firms after mergers; each component of the list is a (named) list with the firm numbers or names going into this merger.

Or a factor of length K with Kg levels where each level determines a merger; to exclude firms for mergers set the factor value to NA.

nFirm

Number of firms before the mergers

X

A matrix of inputs or outputs where the rows corresponds to the number of original (starting) firms

names

A list with names of all firms, only needed if the mergers are given as a list of names, i.e. grp is a list of names.

Details

Either nFirm or X must be present; if both are present then nFirm must be equal to the number of rows in X, the number of firms.

When X is an input matrix of dimension K x m, K firms and m inputs, and M <- make.merge(gr,K) then M %*% X is the input matrix for the merged firms.

Value

Returns an aggregation matrix of dimension Kg times K where rows corresponds to new merged firms and columns are 1 for firms to be included and 0 for firms to be excluded in the given merger as defined by the row.

Note

The argument TRANSPOSE has not been implemented for this function. If you need transposed matrices you must transpose the merger matrix yourself. If you define mergers via factors there is no need to transpose in the arguments; just do not use X in the arguments.

Author(s)

Peter Bogetoft and Lars Otto larsot23@gmail.com

See Also

dea.merge

Examples

# To merge firms 1,3, and 5; and 2 and 4 of 7 firms into 2 new firms
# the aggregation matrix is M; not all firms are involved in a merger.
M <- make.merge(list(c(1,3,5), c(2,4)),7)
print(M)

# Merge 1 and 2, and 4 and 5, and leave 3 alone, total of 5 firms.
# Using a list
M1 <- make.merge(list(c(1,2), c(4,5)), nFirm=5)
print(M1)

# Using a factor
fgr <- factor(c("en","en",NA,"to","to"))
M2 <- make.merge(fgr)
print(M2)

# Name of mergers
M3 <- make.merge(list(AB=c("A","B"), DE=c("D","E")), names=LETTERS[1:5])
print(M3)

# No name of mergers
M4 <- make.merge(list(c("A","B"), c("D","E")), names=LETTERS[1:5])
print(M4)

Benchmarking documentation built on Nov. 10, 2022, 5:56 p.m.