Как бы я разбил большой набор табличных данных на более мелкие соответствующие таблицы? (Не вопрос БД) - PullRequest
4 голосов
/ 12 мая 2011

Я действительно надеюсь, что смогу описать этот вопрос понятным способом.Это загадка, которую я так и не смог разгадать, хотя я (в основном) ее понимаю.Я просто не знаю, с чего начать, и я очень надеюсь, что кто-то может направить меня в правильном направлении.

У меня БОЛЬШАЯ таблица данных.Он описывает отношения между объектами.Допустим, на оси Y есть элементы с номерами 1-1000, а на оси X также есть элементы 1-1000.Если элемент № 234 на оси Y связан с элементом № 791 на X, в таблице будет отметка, где пересекаются строка и столбец.В некоторых отраслях это называется таблицей правды.Можно сразу увидеть, сколько элементов в системе связаны друг с другом.Отметки в таблице могут помочь определить тенденции и закономерности.

Вот еще некоторые полезные сведения о характере таблицы:

  • Полный диапазон количества отношений (r) для каждого элемента на любой оси может быть 1 <= r <= axisTotal. </li>
  • Оси X и Y будут иметь общие элементы, но каждая ось также будет иметь элементы, которых нет на другой оси.
  • Каждый элемент будет существовать только один раз для каждой оси.Это может быть для X и Y, но это будет только для каждого 1 раз.
  • Общее количество элементов на каждой оси, скорее всего, НЕ будет одинаковым.Каждая ось может иметь от 50 до 1000 элементов.

Конечный результат заключается в том, что это будет отчет, который необходимо распечатать.Мы успешно напечатали таблицу, в которой было около 100-150 элементов на каждой оси на листе бумаги размером 11 на 17 дюймов.Более того, он становится настолько маленьким, что его невозможно прочитать.

Я пытаюсь разбить супер большие таблицы на более мелкие, но связанные точки должны оставаться вместе.Если я возьму элемент 1-100 на X, то мне понадобится каждый элемент, к которому они относятся, начиная с Y.

Я сгенерировал несколько этих таблиц, и, хотя количество отношений МОЖЕТ быть произвольным, я никогдаВидимый предмет относится ко всем остальным предметам.Так что в реальной практике диапазон больше похож на 1 <= r <= (10% * axisTotal).Если отношения элемента превышают этот диапазон, его можно разбить на несколько таблиц, но это совсем не оптимально. </p>

В конце дня я думаю, что мы и наши клиенты были бы рады, если быТаблица элементов 1000x1000 была разбита на 8–10 печатных страниц меньших связанных таблиц.

Любое руководство будет отличной помощью!Спасибо.

--- EDIT --- Еще одна вещь, которую стоит отметить, в таблице не будет пустых строк или столбцов.Каждый элемент на осях x и y будет связан как минимум с 1 элементом на противоположной оси.

--- EDIT --- Вот пример небольшой таблицы истинности, котораяЯ описываю: Example Truth Table.У каждой строки и столбца есть хотя бы одно отношение.

--- EDIT --- 18 мая 2011 г. Что бы это ни стоило, я довольно неплохо продвигался в этом проекте, и меня привлеклина пару недельТак что пройдет немного времени, прежде чем я вернусь к этой проблеме.Но это то, что мне придется решить в ближайшее время.

--- РЕДАКТИРОВАТЬ --- 11 июля 2011 г. Облом.Ну, похоже, я не смогу решить эту проблему прямо сейчас.Я действительно надеялся понять это.В ходе обсуждения мы решили представить таблицу истинности в электронной таблице Excel в качестве дополнительного ресурса к основному отчету.Excel 2007 и более поздние версии будут обрабатывать тысячи столбцов, которых будет более чем достаточно.Кроме того, мы добавили несколько VBA, которые позволяют зрителю дважды щелкнуть заголовки столбцов.Это действие уменьшит строки до тех, где есть взаимодействия.Затем он удаляет пустые столбцы.Таким образом, они могут видеть небольшую вспомогательную таблицу, основанную на элементе, который они хотят просмотреть, и могут распечатать его, если хотят.

Ответы [ 2 ]

1 голос
/ 12 мая 2011

Это не ответ, я просто хочу попытаться визуализировать ваши данные немного лучше.Это выглядит примерно так?

        Alice  Bob  Charlie ... Zelda
Shoes     X            X
Hats            X                 X
Gloves                 X
...
Pants           X

РЕДАКТИРОВАТЬ

Требуется ли показ данных в табличном формате?Или вы могли бы просто перечислить каждого из них?Что-то вроде:

  • Алиса
    • Обувь
  • Боб
    • Шапки
    • Брюки
  • Чарли
    • Обувь
    • Перчатки
  • Зельда
    • Шапки

Или другим способом:

  • Обувь
    • Алиса
    • Чарли
  • Шляпы
    • Боб
    • Зельда
  • Перчатки
    • Чарли
  • Брюки
    • Боб

РЕДАКТИРОВАТЬ 2

Хорошо, я сделал еще одну большую таблицу истинности, чтобы, надеюсь, получить лучшее пониманиео том, как вы хотите разделить вещи:

   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
 1 x   x     x                             x
 2   x x     x             x         x     x
 3 x               x             x             x
 4         x             x     x
 5   x           x                 x
 6               x             x           x
 7   x             x             x
 8         x               x               x

Ради аргумента давайте просто скажем, что вы можете разместить только 4 строки на странице (потому что я не хочу печатать гигантскую таблицу в началеутро), поэтому мы собираемся разделить это на две страницы.Во-первых, важно показать каждый ряд, верно?Во-вторых, нужно ли показывать столбцы, которые никогда не имеют значения.Например, Y и Z никогда не имеют значения для строк с 1 по 8 в этой таблице, могут ли они быть исключены из отчета или они все еще должны быть там?В-третьих, важен ли порядок строк?

Если не важно показывать полностью пустые столбцы, мы могли бы удалить 10 столбцов из таблицы выше и сжать их до:

   A B C E F H I L M O P Q R U V W
 1 x   x   x                 x
 2   x x   x       x       x x
 3 x           x       x         x
 4       x       x   x
 5   x       x           x
 6           x       x       x
 7   x         x       x
 8       x         x         x

Тогдаесли порядок строк не важен, вы можете сжать его дальше, выбрав оптимальное расположение строк (не обязательно показано здесь).Две приведенные ниже таблицы были дополнительно сжаты до 11 и 10 столбцов:

  A B C F H I M P Q R U
1 x   x x             x
2   x x x     x     x x
5   x     x       x
7   x       x   x

  A E H I L M O P U W
3 x     x       x   x
4   x     x   x
6     x       x   x
8   x       x     x

Я иду по совершенно неправильному пути?Это всего лишь вопросы, которые помогут мне лучше понять ваши требования к данным и выводу.

Кроме того, если серьезно, есть ли возможность приобрести принтеры / плоттеры большего размера?Кроме того, можно ли просто создать PDF-файл и использовать опцию печати в Acrobat?

0 голосов
/ 12 мая 2011

В прошлом году я прочитал статью в журнале PLoS по вычислительной биологии ( www.ploscompbiol.org ), которая, похоже, связана с вашей проблемой.

Короче говоря, он описывает новый подходкогда у нас уже есть набор белков и табличных данных об их непосредственном взаимодействии, и мы хотим сгруппировать их так, чтобы взаимодействие внутри группы и взаимодействие между двумя группами было либо максимальным, либо (это инновационная идея) минимизировано.

Если мы построим начальную таблицу данных с черным для высокого и белым для низкого взаимодействия, она будет выглядеть случайно серой.Таблица результатов после выполнения расчетов и перестановки (сгруппированные элементы располагаются рядом друг с другом) больше похожа на ортогональные области черного и белого.

Статья: Сети взаимодействия с белками- Больше, чем простые модули ,

, где есть также ссылки на другие более старые методы группировки данных такого типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...