HOWTO · R
Rの1列にNAがある行を削除する
このチュートリアルでは、R のデータフレームから 1つの列に NA を持つ行を削除する方法を示します。
このページの内容
データ フレームの列には、キーワード NA で表される空の値を含めることができます。 このチュートリアルでは、R の 1つの列に NA 値を含む行を削除する方法を示します。
R の is.na() メソッドを使用して、1つの列に NA を含む行を削除する
メソッド is.na() は、データ フレーム内の NA 値を探し、NA 値の行を削除します。 プロセスを以下に示します。
- まず、データフレームを作成します。
- 削除する
NA値と行に基づいて列を選択します。 - パラメータ
dataframe$columnnameをバイパスするメソッドis.na()で否定を作成します。 - メソッドは、指定された列に
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つの列ではなく、複数の列に基づいて値を削除します。