Рефрейминг данных - PullRequest
       9

Рефрейминг данных

0 голосов
/ 06 февраля 2019

Уважаемые пользователи Stackoverflow,

В настоящее время я работаю с 2 наборами данных, которые мне нужно обработать.Но чтобы это работало, мне нужно переделать мой набор данных в другой формат.Я занимаюсь исследованием бивариантных вероятностей и поэтому хочу объединить 2 набора данных.

Оба набора данных в настоящее время имеют формат xls;

      0-1 h  1-2 h ..... 23-24 h 

дата 1 значение1 значение2 ..... значение 24

дата 2 значение1 значение2 ..... значение24

дата 3 значение1 значение2 .....значение 24

Набор данных делится по годам на листе.Также отсутствуют некоторые даты, и между некоторыми датами есть белые строки.Более того, вместо значений 0 есть несколько символов «-».

Теперь мне нужно переформатировать 2 набора данных в следующий формат в .csv или .txt;Все в одном листе;Даты (дд / мм / гггг) - Часы - Значения Набор данных 1 - Значения Набор данных 2

К сожалению, я начал работать над кодом, но не смог полностью решить эту проблему.Может быть, кто-то может мне помочь?Я работал в Matlab, потому что некоторые расширения, которые я должен использовать в дальнейшем, являются дополнениями в Matlab.

Я начал использовать некоторые функции импорта данных, поскольку они автоматически пишут их для вас, но я бы предпочел, чтобы функция работала для всех моих листов, а не для каждого листа, получающего разные функции.Текущий код;

%% cycle through excel sheets --> puts data into cell in arrays.

[~,sheet_name]=xlsfinfo('hourly_data.xls');
for k=1:numel(sheet_name)
   dates = readtable('C:\Users\Thomas \Documents\Thesis\data\hourly_data.xls','Sheet', sheet_name{k},'Range', 'A:A');
   dates = dates(:,1);
   dates = dates(9:end,1);
   dates_ok = datetime(dates,'InputFormat','dd/MM/YYYY')
   raw(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),raw)) = {''};
    % date{k}=xlsread('data1.xls',sheet_name{k}, 'A:A');
end

%% get data from all the different sheets

for k = 1 : length(data)
    % Extract the k'th cell's contents.
    thisCellContents = data{k};  % Will be a 365x24 array.
    subArray = thisCellContents(1:366, 1); % Extract columns 1-365 of column 1
    % Now do something with subarray.....
end

Любая помощь будет принята с благодарностью!

С уважением,

Thomas

...