在R中折叠重复项,其中仅唯一列值被串联

法兰乔

我需要折叠一张大表(V19,5M),在其中删除基于特定列(V1)的重复项,如果唯一则合并所有其他列的值(如果不是,则只报告一次结果)。

我从这里尝试了一些解决方案,但是这些示例大部分是在2个变量上执行的-我有19个。最终发生的事情是,表的其余全部合并在一个数字列表列中。

输入:

V1         V2         V3         V4         V5         V6
TR1000     chr1       1000       1200       A          + 
TR1000     chr1       1000       1200       B          + 
TR1000     chr1       1000       1200       C          +  
TR2000     chr2       2000       2500       D          +   
TR2000     chr2       2000       2500       E          + 
TR3000     chr3       3000       3500       F          +  

我需要:

V1         V2         V3         V4         V5         V6
TR1000     chr1       1000       1200       A, B, C    + 
TR2000     chr2       2000       2500       D, E       +  
TR3000     chr3       3000       3500       F          + 
万维网

使用的解决方案dplyr

library(dplyr)

dat2 <- dat %>%
  group_by_at(vars(-V5)) %>%
  summarize(V5 = toString(V5)) %>%
  ungroup() %>%
  select(names(dat))
dat2
# # A tibble: 3 x 6
#   V1     V2       V3    V4 V5      V6   
#   <chr>  <chr> <int> <int> <chr>   <chr>
# 1 TR1000 chr1   1000  1200 A, B, C +    
# 2 TR2000 chr2   2000  2500 D, E    +    
# 3 TR3000 chr3   3000  3500 F       +    

数据

dat <- read.table(text = "V1         V2         V3         V4         V5         V6
TR1000     chr1       1000       1200       A          + 
TR1000     chr1       1000       1200       B          + 
TR1000     chr1       1000       1200       C          +  
TR2000     chr2       2000       2500       D          +   
TR2000     chr2       2000       2500       E          + 
TR3000     chr3       3000       3500       F          +  ",
                  header = TRUE, stringsAsFactors = FALSE)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据另一列中的唯一值查找一列中的重复项

如何将唯一的重复列折叠为 R 中的唯一列?

删除重复项,其中同一行中另一列的值= 0

通过另一列中的唯一值删除重复项

从多个唯一列中删除重复项

从列表中删除唯一值,仅保留重复项

Excel:如何在一个列中收集与另一列中的重复项关联的唯一值?

在1列中列出唯一值,并在另一列中串联相应的值

DAX的一列中仅唯一值的总和

根据另一列中的重复值过滤一列中的唯一值

如何在MySQL中为每行仅串联唯一列?

如何从R中的两个不同数据帧中添加两列,其中一列只是另一列的唯一值的子集

R Dataframe 中列组合的唯一列值

计算重复项中的唯一值

根据另一列(Python,Pandas)中的值删除一列的重复项

如何根据另一列的值查找和删除一列中的重复项?

熊猫将重复项放在一列上,而仅将值最频繁的行保留在另一列中

根据R中另一列的条件从一列中删除重复项

如何将系列列表中的值折叠成唯一列表

JS - 加入具有重复项的数组中的唯一列

查找重复的行,但仅针对唯一列

从 DataFrame 中删除一列中仅包含一个唯一值的组

MySQL:仅当另一列中的值唯一时才设置值

仅折叠R中数据帧的第一列,其余列数据保持不变

如何基于两列中任一列的重复值生成唯一ID?

如何替换一列中的重复值以使其基于Pandas中的另一列而唯一?

如何从一列中的不同值采样而仅返回另一列中唯一的记录?

MySQL 5 仅按一列过滤重复项

获取行,其中一列是唯一的,另一列是相对唯一的列中的最低值