Convert dichotomy data.frame/matrix to data.frame with category encoding
Convert dichotomy data.frame/matrix to data.frame with category encoding
as.category(x, prefix = NULL, counted_value = 1, compress = FALSE) is.category(x)
x | 
 Dichotomy data.frame/matrix (usually with 0,1 coding).  | 
prefix | 
 If is not NULL then column names will be added in the form prefix+column number.  | 
counted_value | 
 Vector. Values that will be considered as indicator of category presence. By default it equals to 1.  | 
compress | 
 Logical. Should we drop columns with all NA? FALSE by default. TRUE significantly decreases performance of the function.  | 
data.frame of class category with numeric values
that correspond to column numbers of counted values. Column names of x or
variable labels are added as value labels.
as.dichotomy for reverse conversion, mrset,
mdset for usage multiple-response variables with tables.
set.seed(123)
# Let's imagine it's matrix of consumed products
dichotomy_matrix = matrix(sample(0:1,40,replace = TRUE,prob=c(.6,.4)),nrow=10)
colnames(dichotomy_matrix) = c("Milk","Sugar","Tea","Coffee")
as.category(dichotomy_matrix, compress = TRUE) # compressed version
category_encoding = as.category(dichotomy_matrix)
 # should be TRUE
identical(val_lab(category_encoding), c(Milk = 1L, Sugar = 2L, Tea = 3L, Coffee = 4L))
all(as.dichotomy(category_encoding, use_na = FALSE) == dichotomy_matrix)
# with prefix
as.category(dichotomy_matrix, prefix = "products_")
# data.frame with variable labels
dichotomy_dataframe = as.data.frame(dichotomy_matrix)
colnames(dichotomy_dataframe) = paste0("product_", 1:4)
var_lab(dichotomy_dataframe[[1]]) = "Milk"
var_lab(dichotomy_dataframe[[2]]) = "Sugar"
var_lab(dichotomy_dataframe[[3]]) = "Tea"
var_lab(dichotomy_dataframe[[4]]) = "Coffee"
as.category(dichotomy_dataframe, prefix = "products_")Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.