我有一个巨大的数据集,其中有同一组列名的多个副本(但是当我使用“Read_csv”导入数据时,使用_添加_2,_2 - “重复列名重复数据删除”)。例如,以下代码将创建我正在使用* *
的非常小的版本practiceData <- tibble(sheepID= (1:3),
orig= c('224/235/54', '356/876/58', '345/765/67'),
dest= c('444/634/87', '578/765/23', '365/987/11'),
date= c('2009-03-02', '2009-03-02', '2009-03-02'),
sheepID_1= (4:6),
orig_1= c('232/153/76', '456/812/48', '135/665/77'),
dest_1= c('424/434/37', '538/745/23', '345/932/51'),
date_1= c('2009-03-02', '2009-03-02', '2009-03-02'),
sheepID_2= (7:9),
orig_2= c('212/135/24', '336/826/48', '332/743/37'),
dest_2= c('434/654/47', '575/725/13', '325/937/41'),
date_2= c('2009-03-02', '2009-03-02', '2009-03-02'))
正如您所看到的,共有12列,包含4个重复列名称的3个副本(在重复结束时添加了_1,_2)。
我希望在一列中使用相同类型的所有列名,而不是重复删除重复列名,然后使用包含原始列标识符的额外列。以下代码创建以这种方式构建的tibble:
practiceData2 <- tibble(sheepID= (1:9),
orig= c('224/235/54', '356/876/58', '345/765/67', '232/153/76', '456/812/48', '135/665/77', '212/135/24', '336/826/48', '332/743/37'),
dest= c('444/634/87', '578/765/23', '365/987/11', '424/434/37', '538/745/23', '345/932/51', '434/654/47', '575/725/13', '325/937/41' ),
date= c('2009-03-02', '2009-03-02', '2009-03-02', '2009-03-02', '2009-03-02', '2009-03-02', '2009-03-02', '2009-03-02', '2009-03-02'),
col_inc = c('1', '1', '1', '2', '2', '2', '3', '3', '3'))
我原以为我可以使用gather()函数作为tidyverse的一部分。但是,我不知道如何为多个重复的列名称执行此操作。在我的完整数据集中,有相同的40个列名称的数万个副本!
*这些都不是真实数据