Иллюстрированный самоучитель по Mathematica 3/4

Манипуляции с данными (DataManipulation)

Статистические данные обычно бывают представлены в виде списков – как одномерных, так и двумерных (таблиц и матриц) и даже многомерных. Большая часть функций, обеспечивающих манипуляции с данными, сосредоточена в подпакете DataManipulation.

Данные могут вводиться в строках ввода или считываться из файлов с помощью функции ReadList. Для манипуляций с данными могут использоваться многие функции ядра системы, описанные ранее, – в частности, все функции обработки списков. Подпакет DataManipulation дает ряд удобных функций. Ниже представлена первая группа таких функций:

  • Column [data, n] – возвращает n-й столбец списка data;
  • Column [data, {n1, n2,…}] – возвращает список из столбцов ni списка данных;
  • ColumnTake [data, spec] – возвращает столбцы списка data с данной спецификацией spec;
  • ColumnDrop [data, spec] – удаляет столбцы списка data с данной спецификацией spec;
  • Column Jo in [data1, data2,…] – объединяет столбцы списков datai;
  • RowJoin [datal, data2,…] – объединяет строки списков datai;
  • DropNonNumeric [data] – удаляет из списка data нечисловые элементы;
  • DropNonNumericColumnfdata] – удаляет из списка data столбцы с нечисловыми элементами.

Примеры применения этих функций:

<<Statistics`DataManipulation `
  
data = {{a, 3}, {b, 6}, {c, 4}, {d, i},
{e, 5}, {i 4}}
{{a, 3}, {b, 6}, {c, 4}, {d, i}, {e, 5), {f, 4}}
  
col2 = Column[data, 2]
{3, 6, 4/i, 5, 4}
  
newdata = DropNonNumeric[col2]
{3, 6, 4, 5, 4}

Полезны также следующие функции подпакета:

  • BooleanSelect [list, sel] – удаляет из list элементы, которые дают True при тестировании выражения sel;
  • TakeWhile [list,pred] – удаляет из list все элементы, начиная с того, для которого pred дает True;
  • LengthWhile [list,pred] – возвращает число элементов, которые были удалены после того, как pred дало значение True (отсчет с начала списка).

Примеры применения этих функций:

TakeWhile[col2, NumberQ]
(3.6, 4}
  
LengthWhile[col2, NumberQ]
3
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.