Rの1列にNAがある行を削除する

Sheeraz Gul 2023年6月21日
  1. R の is.na() メソッドを使用して、1つの列に NA を含む行を削除する
  2. R で complete.cases() メソッドを使用して、1つの列に NA を含む行を削除する
  3. RのTidyrライブラリdrop_na()メソッドを使用して、1列にNAを含む行を削除する
Rの1列にNAがある行を削除する

データ フレームの列には、キーワード NA で表される空の値を含めることができます。 このチュートリアルでは、R の 1つの列に NA 値を含む行を削除する方法を示します。

R の is.na() メソッドを使用して、1つの列に NA を含む行を削除する

メソッド is.na() は、データ フレーム内の NA 値を探し、NA 値の行を削除します。 プロセスを以下に示します。

  1. まず、データフレームを作成します。
  2. 削除する NA 値と行に基づいて列を選択します。
  3. パラメータ dataframe$columnname をバイパスするメソッド is.na() で否定を作成します。
  4. メソッドは、指定された列にNA値が含まれているかどうかを確認して、行を削除します。

上記の手順に従って、例を試してみましょう。

例:

Delftstack = data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                  LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
                  Id=c(101, 102, NA, 104, NA),
                  Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))

print('The dataframe before removing the rows:-')
print(Delftstack)

print('The dataframe after removing the rows:-')
Delftstack[!is.na(Delftstack$Id),]

上記のコードは、Id 列の NA 値に基づいて行を削除します。

出力:

[1] "The dataframe before removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler  NA      Senior Dev
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro  NA          Intern

[1] "The dataframe after removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
4 Michelle   McCool 104      Junior Dev

R で complete.cases() メソッドを使用して、1つの列に NA を含む行を削除する

メソッド complete.cases()is.na() メソッドと同様に機能します。 complete.cases メソッドは、データ フレーム内の NA 値を探し、この値を含む行を削除します。

プロセスは上記の手順と似ていますが、complete.cases() で否定を使用しないことだけが異なります。

例:

Delftstack = data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                  LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
                  Id=c(101, 102, NA, 104, NA),
                  Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))

print('The dataframe before removing the rows:-')
print(Delftstack)


print('The dataframe after removing the rows:-')
Delftstack[complete.cases(Delftstack$Id),]

上記のコードは、Id 列の NA 値に基づいて行を削除します。

出力:

[1] "The dataframe before removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler  NA      Senior Dev
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro  NA          Intern

[1] "The dataframe after removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
4 Michelle   McCool 104      Junior Dev

RのTidyrライブラリdrop_na()メソッドを使用して、1列にNAを含む行を削除する

tidyr ライブラリの drop_na() は、NA 値列に基づいて行を削除します。 最初に、まだインストールされていない場合は、tidyr ライブラリをインストールする必要があります。

次のコードを実行して、パッケージをインストールします。

install.packages('tidyverse')

コード出力は上記の方法と似ていますが、プロセスは少し異なります。 dataframe %>% drop_na(column) 構文を使用して行を削除します。

例:

library(tidyr)
Delftstack = data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                  LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
                  Id=c(101, 102, NA, 104, NA),
                  Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))

print('The dataframe before removing the rows:-')
print(Delftstack)

print('The dataframe after removing the rows:-')
Delftstack %>% drop_na(Id)

上記のコードは、上記のメソッドと同様に機能します。

出力:

[1] "The dataframe before removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler  NA      Senior Dev
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro  NA          Intern

[1] "The dataframe after removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
4 Michelle   McCool 104      Junior Dev

na.omit()filter() などのメソッドもあり、任意の列にある NA 値に基づいて行を削除するために使用されます。 1つの列ではなく、複数の列に基づいて値を削除します。

著者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

関連記事 - R Data Frame