在 R 中添加多列并列

Sop*_*010 1 transpose pivot-table r dataframe

作为初学者,我有一个df包含 200 多个列的数据框,我想按如下方式转换该数据框。这是输入:

Company Team_1   Team_Desc_1   Team_URL_1   Team_2     Team_Desc_2   Team_URL_2  Team_3     Team_Desc_3   Team_URL_3 ...
abc     Name1    Desc1         URL1         Name2      Desc2         URL2        Name3      Desc3         URL3       ...
def     Name1.1  Desc1.1       URL1.1       Name2.1    Desc2.1       URL2.1      Name3.1    Desc3.1       URL3.1     ...
ghi     Name1.2  Desc1.2       URL1.2       Name2.2    Desc2.2       URL2.2      Name3.2    Desc3.2       URL3.2     ...
Run Code Online (Sandbox Code Playgroud)

我想按如下方式转换这个 df :

Company Team      Team_Desc  Team_URL
abc     Name1     Desc1      URL1
abc     Name2     Desc2      URL2
abc     Name3     Desc3      URL3
def     Name1.1   Desc1.1    URL1.1
def     Name2.1   Desc2.1    URL2.1
def     Name3.1   Desc3.1    URL3.1
ghi     Name1.2   Desc1.2    URL1.2
ghi     Name2.2   Desc2.2    URL2.2
ghi     Name3.2   Desc3.2    URL3.2
...     ...       ...        ...
Run Code Online (Sandbox Code Playgroud)

所以我想在一列中添加所有名称以及相应的公司、描述和 URL。如何在 R 中通过循环对多个列执行此操作,这些列的名称都相同,并且列名称末尾的值递增,如本例所示?谢谢你!

Maë*_*aël 5

pivot_longer

library(tidyr)
pivot_longer(dat, 
             -Company,
             names_to = ".value",
             names_pattern = "(Team[_|Desc|URL]*)_\\d")
Run Code Online (Sandbox Code Playgroud)
  Company Team    Team_Desc Team_URL
1 abc     Name1   Desc1     URL1    
2 abc     Name2   Desc2     URL2    
3 abc     Name3   Desc3     URL3    
4 def     Name1.1 Desc1.1   URL1.1  
5 def     Name2.1 Desc2.1   URL2.1  
6 def     Name3.1 Desc3.1   URL3.1  
7 ghi     Name1.2 Desc1.2   URL1.2  
8 ghi     Name2.2 Desc2.2   URL2.2  
9 ghi     Name3.2 Desc3.2   URL3.2  
Run Code Online (Sandbox Code Playgroud)