R数据分组且合并重复的列

在用R语言做数据处理时,通常使用的数据类型是数据框(可类比于excel表格,这样脑海中会有一个直观的印象)。那么数据清理过程中就会需要做各种变化和统计,比如按某些变量来分组并合并重复的数据,那么这个小的需求该如何实现呢?下面我们看看如何来实现这个要求。

#例如现有数据框df格式如下:
name group  num  color  id
test1  g1  2  blue  1
test2  g2  3   red  2
test2  g2  3  red  5
test3  g3  4  yellow  3
test5  g4  5  green  4
#可以看出id列值为2、5的两行前面几列都是一样的,需要合并成如下格式:
name group  num  color  id
test1  g1  2  blue  1
test2  g2  3   red  2,5
test3  g3  4  yellow  3
test5  g4  5  green  4h

对于这个需求我们有两种方法可以完成,一是使用数据清理神奇dplyrR包;二是使用R中基础的分组统计函数aggregate,代码如下:

#方法1
library(dplyr)
df1 <- df %>% group_by(name,group,num,color) %>% summarise(id = paste(id, collapse = ", ")) #可以指定任意分割符

#方法2
df1 <- aggregate(df[5], df[-5], unique)
# 或者
df2 <- aggregate(df[5], df[-5], function(X) paste(unique(X), collapse=", ")) #可以指定任意分割符

现在是不是觉得实现这个需求很简单,你也学会了么?手打文稿不容易,希望各位看官们留下身影帮忙点个赞再走呗!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容