数据分组,根据数据分析对象的特征,按照一定的数值指标,把数据分析对象划分为不同的区间部分来研究,以揭示内在的联系和规律性;
在R中,我们常用ifelse函数来进行数据的分组,跟excel中的if函数是同一种用法。
ifelse(condition,TRUE,FALSE)
> data <- read.table('1.csv', sep='|', header=TRUE); > > level <- ifelse( + data$cost<=20, "(0,20]", + ifelse( + data$cost<=40, "(20,40]", + ifelse( + data$cost<=60, "(40,60]", + ifelse( + data$cost<=80, "(60,80]", + ifelse( + data$cost<=100, "(80,100]", "(100,+)" + ) + ) + ) + ) + ) > level [1] "(0,20]" "(0,20]" "(60,80]" "(0,20]" "(80,100]" "(0,20]" "(80,100]" [8] "(60,80]" "(0,20]" "(40,60]" "(20,40]" "(0,20]" "(60,80]" "(80,100]" [15] "(0,20]" > newData <- data.frame(data, level)
数据分组后的结果:
补充:R语言----对数据进行分类汇总(GROUP_BY使用)
library(dplyr) ###加载dplyr模块 A<-read.csv("f:\\TEST\\TDD.csv") ####加载数据 D=data.frame(A) ##### A1<-group_by(D,Date_ID) ####分组项 A2<-summarise(A1,cells=n(), ####统计个数 RRC_chenggongshu=sum(RRC_chenggongshu), RRC_QINGQIUSHU=sum(RRC_qingqiushu), 成功率=round(sum(RRC_chenggongshu)/sum(RRC_qingqiushu)*100,3), ERABCQI1_qingqiushu=sum(ERABCQI1_qingqiushu) ) write.csv(A2,"output.csv", row.names = FALSE)'去掉行名。 这可以在写入文件时使用附加参数删除。
执行结果:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。