Как получить наиболее распространенную комбинацию в нескольких двоичных столбцах - PullRequest
1 голос
/ 05 апреля 2019

Вот матрица 100 * 54, с 100 записями и 53 двоичными переменными и зависимой переменной - Д / Н

Часть независимых данных выглядит следующим образом:

enter image description here

Мне удалось найти наиболее распространенную переменную, когда dependent == Y

aa <- NULL
for (i in 1 : ncol(data1)) {
  aa[i] <- length(which(data1[which(data1$Output == 'Y'), i] !=0))
}

Теперь я хотел бы найти наиболее распространенные комбинации переменных, которые составляют dependent == Yномера элементов в комбинации не имеют значения.

например, когда dependent == Y,

      Combination              Count
      V1 = 1 & V2 = 1           30
      V1 = 1 & V2 = 1 & V3= 1   25
      V4 = 1 & V5 = 1           24
      ...

1 Ответ

0 голосов
/ 05 апреля 2019

Мы можем вставить все столбцы, а затем получить количество:

# example data
set.seed(1); m1 <- matrix(sample(c(0, 1), 1000, replace = TRUE), ncol = 4)

# all freqs
sort(table(apply(m1, 1, paste, collapse = "")))
# 1100 1111 1101 1001 0100 0101 0000 0001 0010 0011 0110 1110 0111 1011 1000 1010 
#    8    8   12   13   14   14   16   16   16   16   16   16   18   18   22   27 

Если мы предположим, что 1-й столбец является нашим столбцом Да / Нет:

# 0 = No freqs
sort(table(apply(m1[ m1[,1] == 0, -1], 1, paste, collapse = "")))
# 100 101 000 001 010 011 110 111 
#  14  14  16  16  16  16  16  18

# 1 = Yes freqs
sort(table(apply(m1[ m1[,1] == 1, -1], 1, paste, collapse = "")))
# 100 111 101 001 110 011 000 010 
#   8   8  12  13  16  18  22  27
...