mlogit (version 0.2-4)

mlogit.data: data.frame for logit model

Description

shape a data.frame in a suitable form for the use of the mlogit function.

Usage

mlogit.data(data, choice, shape = c("wide","long"), varying = NULL,
            sep=".",alt.var = NULL, chid.var = NULL, alt.levels = NULL,
            id.var = NULL, opposite = NULL, drop.index = FALSE,
            ranked = FALSE, ...)
# S3 method for mlogit.data
mean(x, ...)
# S3 method for pseries
print(x, ...)

Arguments

data

a data.frame,

x

a mlogit.data or a pseries object,

choice

the variable indicating the choice made: it can be either a logical vector, a numerical vector with 0 where the alternative is not chosen, a factor with level 'yes' when the alternative is chosen

shape

the shape of the data.frame: whether long if each row is an alternative or wide if each row is an observation,

varying

the indexes of the variables that are alternative specific,

sep

the seperator of the variable name and the alternative name (only relevant for a wide data.frame),

alt.var

the name of the variable that contains the alternative index (for a long data.frame only) or the name under which the alternative index will be stored (the default name is alt),

chid.var

the name of the variable that contains the choice index or the name under which the choice index will be stored,

alt.levels

the name of the alternatives: if null, for a wide data.frame, they are guessed from the variable names and the choice variable (both should be the same), for a long data.frame, they are guessed from the alt.var argument,

id.var

the name of the variable that contains the individual index if any,

opposite

returns the opposite of the specified variables,

drop.index

should the index variables be dropped from the data.frame,

ranked

a logical value which is true if the response is a rank.

...

further arguments passed to reshape.

Value

A mlogit.data object, which is a data.frame in long format, i.e. one line for each alternative. It has a index attribute, which is a data.frame that contains the index of the choice made ('chid'), the index of the alternative ('alt') and, if any, the index of the individual ('id'). The choice variable is a boolean which indicates the choice made. This function use reshape if the data.frame is in wide format.

See Also

reshape

Examples

Run this code
# NOT RUN {
# ModeChoice is a long data.frame 

data("TravelMode", package = "AER")
TM <- mlogit.data(TravelMode, choice = "choice", shape = "long",
                 alt.levels = c("air", "train", "bus", "car"))

# Same but the alt variable called mode is provided

TM <- mlogit.data(TravelMode ,choice = "choice", shape = "long",
                  alt.var = "mode")

# Same but the chid variable called individual is provided

TM <- mlogit.data(TravelMode, choice = "choice",
                  shape = "long", id.var = "individual",
                  alt.levels = c("air", "train", "bus", "car"))

# Same but with two own provided variables

TM <- mlogit.data(TravelMode, choice = "choice", shape = "long",
                 id.var = "individual", alt.var = "mode")

# Same but with two own provided variables which are deleted from the
  data.frame

TM <- mlogit.data(TravelMode, choice = "choice", shape = "long",
                 id.var = "individual", alt.var = "mode", drop.index = TRUE)


# Train is a wide data.frame with columns 'choiceid' is the choice
#  index, the alternatives are named "ch1" and "ch2", the opposite of
#  the variables is returned

data("Train", package = "mlogit")
Train <- mlogit.data(Train, choice = "choice", shape = "wide",
                     varying = 4:11, alt.levels = c("ch1", "ch2"), sep = "",
                     opposite = c("price", "time", "change", "comfort"))


# Car is a wide data.frame

data("Car", package = "mlogit")
Car <- mlogit.data(Car, varying = 5:70, shape = "wide", sep = "",
                   choice = "choice", alt.levels = 1:6)

data("HC", package = "mlogit")
HC <- mlogit.data(HC, choice = "depvar", varying=c(2:8, 10:16), shape="wide")

# Game is a data.frame in wide format for which the response is a
#  ranking variable

data("Game", package = "mlogit")
G <- mlogit.data(Game, shape="wide", varying = 1:12, alt.var = 'platform',
                 drop.index = TRUE, choice="ch", ranked =TRUE)

# Game2 contains the same data, but in long format 
data("Game2", package = "mlogit")
G2 <- mlogit.data(Game2,  shape='long', choice="ch", alt.var = 'platform', ranked = TRUE)
# }

Run the code above in your browser using DataCamp Workspace