Mam plik CSV, w którym prawdopodobnie brakuje danych, a dane są zarówno znakami, jak i liczbami. Jak najlepiej sobie z tym poradzić?
2 odpowiedzi
Oto przykład:
Plik.csv
name,age,gender
aaa,20,m
bbb,25,
ccc,,m
ddd,40,f
PrzeczytajMójCSV.m
fid = fopen('file.csv','rt');
C = textscan(fid, '%s%f%s', 'Delimiter',',', 'HeaderLines',1, 'EmptyValue',NaN);
fclose(fid);
[name,age,gender] = deal(C{:});
Odczyt danych:
>> [name num2cell(age) gender]
ans =
'aaa' [ 20] 'm'
'bbb' [ 25] ''
'ccc' [NaN] 'm'
'ddd' [ 40] 'f'
To, co zasugerował @Amro, to najczęstszy sposób odczytywania pliku csv z brakującymi wartościami. W twoim przypadku, ponieważ twoje typy danych to zarówno znaki, jak i liczby, powinieneś podać odpowiedni format każdej kolumny. Twoja funkcja powinna wyglądać mniej więcej tak:
C = textscan(fid, '%d32 %c %d8 %d8 %d32 %f32 %f %s ','HeaderLines', 1, 'Delimiter', ',');
Więcej formatów danych znajdziesz tutaj: http://www.mathworks.com/help/techdoc/ref/textscan.html
NaN
(zostają zastąpione zerami). Zobacz to powiązane pytanie: stackoverflow.com/questions/6657963/…
Podobne pytania
Powiązane pytania
Nowe pytania
matlab
MATLAB to język wysokiego poziomu i interaktywne środowisko programistyczne do obliczeń numerycznych i wizualizacji opracowane przez MathWorks. Nie używaj zarówno tagów [matlab], jak i [octave], chyba że pytanie wyraźnie dotyczy podobieństw lub różnic między nimi. Używając tego tagu, podaj wersję MATLAB, z którą pracujesz (np. R2017a).