このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
欠損データの処理は,データ前処理で一般的に行われるタスクです。欠損値はデータ内の意味のあるイベントを表していることもありますが,多くの場合,信頼できないか,使用できないデータ点を表しています。いずれにしても,MATLAB®には欠損データを処理するための多くのオプションがあります。
MATLABでの欠損値の形式は,データ型によって異なります。たとえば,双
などの数値データ型では南
(非数)を使用して欠損値を表します。
x = [n1 2 3 4];
失踪
値を使用して,欠損している数値データや他の型(datetime
、字符串
、分类
など)のデータを表すこともできます。MATLABは,失踪
値をそのデータのネイティブな型に自動的に変換します。
xDouble =[缺少1 2 3 4]
xDouble =1×5南1 2 3 4
xDatetime = [missing datetime(2014,1:4,1)]
xDatetime =1 x5 datetime日期:2014年1月1日-2014年2月1日-2014年3月1日-2014年4月
xString =[失踪“一个”“b”“c”“d”]
xString =1 x5字符串"a" "b" "c" "d"
xCategorical =[缺少categorical({)]“cat1”“cat2”“cat3”“cat4”}))
xCategorical =1 x5分类cat1 cat2 cat3 cat4
欠損データとして扱うのが望ましいものの,MATLABにおいて南
のような標準のMATLAB欠損値ではない値がデータセットに含まれている場合があります。関数standardizeMissing
を使用すると,それらの値をそのデータ型の標準欠損値に変換できます。たとえば,南
の他に4を双
の欠損値として扱います。
xStandard = standarzemissing (xDouble,[4 NaN])
xStandard =1×5南1 2 3南
欠損値をデータセットの一部として維持するが,残りのデータからそれらを分離するとします。いくつかのMATLAB関数を使用して,その後の処理を行う前に欠損値の配置を制御できます。たとえば,関数排序
で“MissingPlacement”
オプションを使用して,南
をデータの末尾に移動します。
xSort =排序(xStandard,“MissingPlacement”,“最后一次”)
xSort =1×51 2 3南南
MATLABで欠損値が明示的に作成されていなくても,既存のデータのインポート,またはデータの計算によって発生することがあります。データ内の欠損値を認識していないと,後続の計算または解析で誤りを招く可能性があります。
たとえば,南
値を含むベクトルを知らずにプロットすると,関数情节
はその値を無視して残りの点を通常どおりにプロットするため,南
は表示されません。
nanData = [1:9 NaN];nanData情节(1:10)
しかし,そのデータの平均を計算すると,結果は南
になります。この場合,データに南
が含まれていることを事前に認識し,平均を計算する前にそれを無視または削除するよう選択するほうが有益です。
meanData =意味着(nanData)
meanData =南
データ内の南
を見つける1つの方法は,関数isnan
を使用することです。この関数は,すべての南
値の場所を示す逻辑配列を返します。
TF = isnan (nanData)
TF =1 x10逻辑阵列0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
同様に,関数ismissing
は複数のデータ型について,データの欠損値の場所を返します。
TFdouble = ismissing (xDouble)
TFdouble =1 x5逻辑阵列1 0 0 0
TFdatetime = ismissing (xDatetime)
TFdatetime =1 x5逻辑阵列1 0 0 0
複数のデータ型の変数で構成された表または时间表を処理するとします。データ型に関係なく,ismissing
を1回呼び出すことによって,すべての欠損値を見つけることができます。
xTable =表(xDouble”、xDatetime”xString ', xCategorical ')
xTable =5×4表Var1 Var2 Var3 Var4 ____ ___________ _________ ___________ 南NaT失踪> < <定义> 1 01 - 1月- 2014”“cat1 2 01 - 2014年2月,“b”cat2 3 01 - 3月- 2014“c”cat3 4 01 - 4月- 2014 cat4“d”
TF = ismissing (xTable)
TF =5 x4逻辑阵列1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
欠損値は,処理または解析に使用できないデータを表していることがあります。fillmissing
を使用して欠損値を別の値に置き換えるか,rmmissing
を使用して欠損値をすべて削除します。
xFill = fillmissing (xStandard,“不变”, 0)
xFill =1×50 1 2 3 0
xRemove = rmmissing (xStandard)
xRemove =1×31 2 3
多くのMATLAB関数では,あらかじめ明示的に特定,埋め込み,または削除することなく,欠損値を無視できます。たとえば,南
値を含むベクトルの総和を計算した場合,結果は南
になります。しかし,関数总和
で“omitnan”
オプションを使用すると,総和において南
を直接無視できます。
sumNan =总和(xDouble)
sumNan =南
sumOmitnan =总和(xDouble,“omitnan”)
sumOmitnan = 10
fillmissing
|ismissing
|失踪
|standardizeMissing