1

データが欠落している可能性のある CSV ファイルがあり、データは文字と数値の両方です。これに対処する最善の方法は何ですか?

4

2 に答える 2

5

次に例を示します。

ファイル.csv

name,age,gender
aaa,20,m
bbb,25,
ccc,,m
ddd,40,f

readMyCSV.m

fid = fopen('file.csv','rt');
C = textscan(fid, '%s%f%s', 'Delimiter',',', 'HeaderLines',1, 'EmptyValue',NaN);
fclose(fid);
[name,age,gender] = deal(C{:});

データの読み取り:

>> [name num2cell(age) gender]
ans = 
    'aaa'    [ 20]    'm'
    'bbb'    [ 25]    '' 
    'ccc'    [NaN]    'm'
    'ddd'    [ 40]    'f'
于 2011-08-09T14:57:27.713 に答える
1

@Amro が提案したのは、値が欠落している csv ファイルを読み取る最も一般的な方法です。あなたの場合、データ型は文字と数字の両方であるため、各列の適切な形式を指定する必要があります。したがって、関数は次のようになります。

C = textscan(fid, '%d32 %c %d8 %d8 %d32 %f32 %f %s ','HeaderLines', 1, 'Delimiter', ',');

その他のデータ形式については、こちらをご覧ください: http://www.mathworks.com/help/techdoc/ref/textscan.html

于 2011-08-09T20:18:17.200 に答える