结合headerless.csv和x27;在PowerShell或RStudio中通过UID删除行中的重复项并删除行中的重复项

结合headerless.csv和x27;在PowerShell或RStudio中通过UID删除行中的重复项并删除行中的重复项,r,powershell,csv,merge,duplicates,R,Powershell,Csv,Merge,Duplicates,我有一些大的(300000+行);它们太大,无法导入Excel以过滤/获取唯一值,并且在PowerShell中连接每个值都花费了数小时。我在这方面取得了进展,但遇到了两个问题,一个是合并它们,另一个是删除(独立)行中的重复项;任何一个方面的帮助都会很好!我要说的是,对于任何相关的人来说,这些都不是下面列出的已确认的副作用,它们甚至可能没有关联,但我认为将它们包括在内以充分说明格式是有帮助的 它们现在的格式如下: 药品.csv 10005323,rituximab,rituximab,rituxi

我有一些大的(300000+行);它们太大,无法导入Excel以过滤/获取唯一值,并且在PowerShell中连接每个值都花费了数小时。我在这方面取得了进展,但遇到了两个问题,一个是合并它们,另一个是删除(独立)行中的重复项;任何一个方面的帮助都会很好!我要说的是,对于任何相关的人来说,这些都不是下面列出的已确认的副作用,它们甚至可能没有关联,但我认为将它们包括在内以充分说明格式是有帮助的

它们现在的格式如下:

药品.csv

10005323,rituximab,rituximab,rituximab,tocilizumab,methotrexate,methotrexate,prednisone,abatacept,certolizumab pegol,etanercept
10005479,rituximab,tocilizumab
11848415,(1-43)-(18-2)-blood-coagulation factor viii (synthetic human) fusion protein with immunoglobulin g/1 (synthetic human fc domain fragment)?,(1-73)-(18-22)-blood-coagulation factor/viii (synthetic human) fusion protein with immunoglobulin g/1 (synthetic human fc domain fragment)?
10005323,asthenia,bronchitis,cholecystitis,cholelithiasis,gastroenteritis,hypertension,lung disorder,pterygium
10005513,dengue fever,feeling hot,headache,osteoarthritis,pain,pruritus,pyrexia,rash macular,weight increased,wrong technique in product usage process
10005479,chest pain,larynx irritation,urticaria
sideeffects.csv

10005323,rituximab,rituximab,rituximab,tocilizumab,methotrexate,methotrexate,prednisone,abatacept,certolizumab pegol,etanercept
10005479,rituximab,tocilizumab
11848415,(1-43)-(18-2)-blood-coagulation factor viii (synthetic human) fusion protein with immunoglobulin g/1 (synthetic human fc domain fragment)?,(1-73)-(18-22)-blood-coagulation factor/viii (synthetic human) fusion protein with immunoglobulin g/1 (synthetic human fc domain fragment)?
10005323,asthenia,bronchitis,cholecystitis,cholelithiasis,gastroenteritis,hypertension,lung disorder,pterygium
10005513,dengue fever,feeling hot,headache,osteoarthritis,pain,pruritus,pyrexia,rash macular,weight increased,wrong technique in product usage process
10005479,chest pain,larynx irritation,urticaria
问题1,通过唯一标识符合并(组合),无标题

每行开头的数字是每个条目的唯一ID,后面是药物列表。它们是“,”分隔的,但其中还有很多其他字符。没有任何标题

第一个问题是将.csv合并在一起;我需要将second.csv中的副作用添加到相关的药物上。我已经找到了很多关于如何做到这一点的例子,但它们似乎都与使用标题名进行组合有关。这里没有任何标题,每行的长度因情况而异。有没有办法在PowerShell中通过指定第一个带分隔符的值,然后是行的其余部分,而不是指定要匹配的单个标题来组合整行?例如,将案例10005323的副作用添加到药品清单10005323中,以给出:

示例输出1

10005323,rituximab,rituximab,rituximab,tocilizumab,methotrexate,methotrexate,prednisone,abatacept,certolizumab,pegol,etanercept,asthenia,bronchitis,cholecystitis,cholelithiasis,gastroenteritis,hypertension,lung disorder,pterygium
问题2,删除独立行中存在的重复项

第二个问题是,每行当前未排序,并且包含多个条目;e、 g.从10005323开始的生产线含有几次利妥昔单抗

我看过的大多数类似解决方案都会尝试同时从所有行中删除重复项(例如,它们还会从第二行中删除利妥昔单抗;10005479),或者它们与删除整行相关,或者需要指定标题。但是我只需要为每一行获取唯一的条目,独立于其他行。合并文件后,保留唯一ID并非完全必要,但如果可以将其保留在每行的第一个位置,则会很方便。我认为这将是一个“sort | get unique”操作,但我不知道如何逐行应用它来给出:

示例输出2

10005323,abatacept,asthenia,bronchitis,certolizumab,cholecystitis,cholelithiasis,etanercept,gastroenteritis,hypertension,lung disorder,methotrexate,pegol,prednisone,pterygium,rituximab,tocilizumab
10005479,chest pain,larynx irritation,rituximab,tocilizumab,urticaria
在R中:

#读取数据
dr=read.csv(“drugs.csv”,header=F,stringsAsFactors=F)
se=read.csv(“sideeffects.csv”,header=F,stringsAsFactors=F)
#将第一列重命名为id
R中的colnames(dr)[1]

#读取数据
dr=read.csv(“drugs.csv”,header=F,stringsAsFactors=F)
se=read.csv(“sideeffects.csv”,header=F,stringsAsFactors=F)
#将第一列重命名为id

colnames(dr)[1]您考虑过使用数据库吗?1)一旦将多个csv读取到R中,就可以给它们指定列名(2)长度不同不应该是问题-R只会将缺少的列作为NAs读取。如果列的顺序在您的CSV中也不相同,那么除了一次读取一个列、适当地命名列然后将它们合并之外,您可能没有其他许多选项。(3) 您应该发布一个带有小数据集的可复制示例,这样人们就可以编写代码来解决您的问题。这是回答
R
等问题的最快方法。您考虑过使用数据库吗?1)多个csv在读入R后可以指定列名(2)长度不同不应该是问题-R将只将缺少的列作为NAs读取。如果列的顺序在您的CSV中也不相同,那么除了一次读取一个列、适当地命名列然后将它们合并之外,您可能没有其他许多选项。(3) 您应该发布一个带有小数据集的可复制示例,这样人们就可以编写代码来解决您的问题。这是回答
R
等问题的最快方法。感谢arturro的快速回复,您的解决方案非常有效!感谢arturro的快速回复,您的解决方案非常有效!