在用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
对于这个需求我们有两种方法可以完成,一是使用数据清理神奇dplyr
R包;二是使用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=", ")) #可以指定任意分割符
现在是不是觉得实现这个需求很简单,你也学会了么?手打文稿不容易,希望各位看官们留下身影帮忙点个赞再走呗!!!
网友评论