Подготовить набор данных для дальнейшей обработки в R с помощью unnesting cell array - PullRequest
0 голосов
/ 25 июня 2018

Я использовал Matlab для считывания данных большого числа файлов Excel с данными эксперимента и сохранения их в (вложенном) массиве ячеек.Мой план состоял в том, чтобы использовать массив ячеек для дальнейшего анализа в R.

Поскольку я неправильно понял использование массива ячеек, я создал 4-уровневый вложенный массив ячеек, где на каждый уровень первая строка содержит символьные векторы для каждого столбца (например, Var1 Var2 и т. д.); строки ниже, содержащие ячейку, которая ведет к следующему уровню данных (до самого нижнего уровня, на котором хранятся фактические данные).

Я заметил, что массив ячеек был довольно неподходящим для моего плана, так как R, похоже, имеет проблемы с вложенными массивами ячеек.Кроме того, я не могу использовать cell2mat, так как первая строка каждого уровня массива ячеек не является двойным типом данных.

Поэтому мне было интересно, есть ли опыт передачи данных Matlab в R для вложенных наборов данных(какой тип переменной использовать и т. д.) и если есть идеи, чтобы перевести мои данные в такую ​​новую структуру, не перечитывая их из файлов Excel.

Ниже вы найдете пример моей текущей "базы данных", гдекаждая строка ниже первой представляет данные от одного участника.

ExperimentCell =

  25×13 cell array

  Columns 1 through 13

    {'Var1'   }    {'Var2'   } ... {'Var13'  }
    {2×30 cell}    {2×30 cell} ... {2×30 cell}
    .
    .
    .
    {2×30 cell}    {2×30 cell} ... {2×30 cell}

РЕДАКТИРОВАТЬ В соответствии с запросом содержимое ячеек следующее:

{2x8 cell}> {2x8 cell}> {2x8 cell} (где каждый> обозначает шаг вниз по иерархии).На каждом из этих уровней первая строка содержит «заголовки столбцов» (как в примере выше с Var1), а строка ниже, содержащая «ссылку на гнездо» на следующий уровень.На последнем уровне каждая ячейка во втором ряду содержит двойное число (к которому можно обратиться с помощью вложенного {} -индексирования)

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