Если бы у меня была кошка каждый раз, я видел базу данных биологических, психологических или химических веществ в этом состоянии:
"каждый столбец содержит 50 экспериментов,
каждый с 4000 строк, на 200000 некоторые
Всего строк. Что я хочу сделать, это взять
каждый столбец, и сделать его отдельным
CSV-файл, с каждым экспериментом в своем
собственная колонка. Так что это будет массив
50 столбцов и 4000 строк для каждой информации
типа "
Я бы слишком много гулял со многими кошками.
Я даже не посмотрел на ваш код, потому что предложенная вами перестройка - это просто еще одна проблема, которую нужно решить. Я не виню тебя, ты утверждаешь, что ты новичок, и все твои сверстники делают такую же ошибку. Начинающие программисты, которым еще предстоит понять, как использовать массивы, часто сталкиваются с объявлениями переменных, такими как:
integer response01, response02, response03, response04, ...
и затем очень, очень избыточный код, когда они пытаются увидеть, является ли каждый ответ - скажем - 1. Я думаю, что это такая соблазнительная ошибка в биоинформатике, потому что она фактически моделирует бумажные обозначения, из которых они приходят довольно хорошо. К сожалению, модель листа бумаги не лучший способ для моделирования данных.
Вы должны прочитать и понять, почему нормализация базы данных была разработана, кодифицирована и стала доминировать в том, как люди думают о структурированных данных. Одной статьи в Википедии может быть недостаточно. Используя приведенный мной пример, я попытаюсь объяснить, как я к этому отношусь. Ваши данные состоят из наблюдений; Иными словами, первичные данные - это единичное наблюдение. Это наблюдение имеет контекст: это один из 4000 наблюдений, каждый из которых принадлежит одному из 50 экспериментов. Если бы вам пришлось прикреплять контекст к каждому наблюдению, вы бы получили схему адресации, которая выглядит следующим образом:
<experiment_number, observation_number, value>
В жаргоне базы данных это кортеж, и он способен представлять без двусмысленности и идеальной симметрии всю полноту ваших данных. Я не уверен, что понял точную структуру ваших данных, так что, возможно, это что-то вроде:
<experiment_number, protocol_number, observation_number, value>
где протоколом может быть какая-то форма переменного типа лечения - скажем, pH. Но обратите внимание, что я не назвал протокол pH и я не записал его как таковой в базу данных. Тогда мне понадобится вспомогательная таблица с соответствующими параметрами протокола, , например, :
<protocol_number, acidity, temperature, pressure>
Теперь мы только что создали «отношение», о котором любят говорить те, кто работает с базой данных; мы также начали нормализацию данных. Если вам нужно знать pH для данного протокола, в единственном ряду таблицы протокола есть единственное и единственное место, где его можно найти. Обратите внимание, что я отделил данные, которые так хорошо сочетаются друг с другом на листе данных, и из таблицы наблюдений я не могу увидеть pH для конкретного dataum. Но это нормально, потому что я могу просто посмотреть это в своей таблице протоколов, если это необходимо. Это «реляционное соединение», и если бы мне было нужно, я мог бы объединить все различные параметры из всех различных таблиц и воссоздать исходную таблицу данных в ее исходной неструктурированной форме.
Надеюсь, этот ответ пригодится вам. Я уверен, что даже не знаю, из какой области изучаются ваши данные, но эти принципы применяются во всех областях от испытаний лекарств до обработки заявки. Пожалуйста, поймите, что я пытаюсь информировать, согласно вашему запросу, и намерение снисходительности не предусмотрено. Я приветствую дополнительные вопросы по этому вопросу.