我有一个数据框,想要删除那些在两列中都有重复字符串的行(分别命名为“Up”和“Down”)。如果某些行只在其中1个列中具有重复的字符串,则不应将它们删除。 从重复的行中,我希望保留另一列(名为“Fold”)中找到的最高值所在的行。除此任务之外,第四列(名为“Name”)还需要进行以下字符替换:
从这个开始:
ID Name Fold Up Down
1 mRNA_splicing(5) 3.2 a,b,c,d,e f,g,h,i
2 mRNA_processing(7) 3.1 a,b,c,d,e f,g,h,i
3 adherens_junctions(5) 2.6 k,l,m p,q,r,s,t,u
4 glucose_transport(4) 3.4 d,j,n o,p,v,w,z
5 hexose_transport(2) 3.5 d,j,n o,p,v,w,y,z
我希望获得这个:
ID Name Fold Up Down
1 mRNA splicing 3.2 a,b,c,d,e f,g,h,i
2 adherens junctions 2.6 k,l,m p,q,r,s,t,u
3 glucose transport 3.4 d,j,n o,p,v,w,z
4 hexose transport 3.5 d,j,n o,p,v,w,y,z
关于执行去重行的函数,对于字符而言,duplicate
和unique
均无法正常工作,那么此处该怎么办呢?欢迎提供您优雅的解决方案。
df %>% group_by(Up, Down) %>% slice(which.max(Fold))
。 - tmfmnk