HOWTO · R
R で 2つの列を連結する
このチュートリアルでは、R で 2つの列を連結する方法を示します。
このページの内容
1つの列の値を他の列の値に連結する必要がある場合があります。 R には、2つの列を連結する 2つの方法があります。 このチュートリアルでは、R でデータ フレーム列を連結する 2つの方法を示します。
R で Paste() 関数を使用して 2つの列を連結する
Paste() はベース R の組み込み関数で、データ フレーム内の 2つの列を連結できます。 新しい列を作成し、パラメーターとして渡された 2つの列を区切り記号で結合します。
例を参照してください:
Delftstack <- data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
Id=c(101, 102, 103, 104, 105),
Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))
print('The dataframe before concatenating the columns:-')
Delftstack
#combine name and ID into one column
Delftstack$Id_Name <- paste(Delftstack$Id, Delftstack$Name, sep="_")
print('The dataframe after concatenating the columns:-')
Delftstack
上記のコードは、Id 列と Name 列を新しい列 Id_Name に連結します。 新しい列を作成し、paste 関数を列名と区切り記号と共に使用して、2つの列を連結します。
列名は datframe$columnname で示されます。 出力を参照してください。
[1] "The dataframe before concatenating the columns:-"
Name LastName Id Designation
1 Jack Danials 101 CEO
2 John Cena 102 Project Manager
3 Mike Chandler 103 Senior Dev
4 Michelle McCool 104 Junior Dev
5 Jhonny Nitro 105 Intern
[1] "The dataframe after concatenating the columns:-"
Name LastName Id Designation Id_Name
1 Jack Danials 101 CEO 101_Jack
2 John Cena 102 Project Manager 102_John
3 Mike Chandler 103 Senior Dev 103_Mike
4 Michelle McCool 104 Junior Dev 104_Michelle
5 Jhonny Nitro 105 Intern 105_Jhonny
必要に応じて、連結後に前の列を削除できます。
New_Delftstack <- Delftstack[c("Id_Name", "LastName", "Designation")]
print('The dataframe after concatenating the columns:-')
New_Delftstack
上記のコードは、以前の列を削除し、連結された列を持つ新しいデータ フレームを提供します。 出力を参照してください:
[1] "The dataframe after concatenating the columns:-"
Id_Name LastName Designation
1 101_Jack Danials CEO
2 102_John Cena Project Manager
3 103_Mike Chandler Senior Dev
4 104_Michelle McCool Junior Dev
5 105_Jhonny Nitro Intern
Tidyr の Unite() 関数を使用して、R で 2つの列を連結する
R の tidyr パッケージには、R の 2つの列を連結できる unite() 関数があります。これは、データ フレーム、新しい列名、および連結された列をパラメーターとして受け取ります。
例を参照してください:
library(tidyr)
Delftstack <- data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
Id=c(101, 102, 103, 104, 105),
Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))
print('The dataframe before concatenating the columns:-')
Delftstack
print('The dataframe after concatenating the columns:-')
unite(Delftstack, Id_Name, c(Id, Name))
上記のコードは、2つの列を連結し、前の列を削除します。 出力を参照してください:
[1] "The dataframe before concatenating the columns:-"
Name LastName Id Designation
1 Jack Danials 101 CEO
2 John Cena 102 Project Manager
3 Mike Chandler 103 Senior Dev
4 Michelle McCool 104 Junior Dev
5 Jhonny Nitro 105 Intern
[1] "The dataframe after concatenating the columns:-"
Id_Name LastName Designation
1 101_Jack Danials CEO
2 102_John Cena Project Manager
3 103_Mike Chandler Senior Dev
4 104_Michelle McCool Junior Dev
5 105_Jhonny Nitro Intern
ご覧のとおり、列を削除する場合は unite() の方が便利です。