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

TidyrUnite() 関数を使用して、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() の方が便利です。