数据分组,根据数据分析对象的特征,按照一定的数值指标,把数据分析对象划分为不同的区间部分来研究,以揭示内在的联系和规律性;
在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)'去掉行名。 这可以在写入文件时使用附加参数删除。
执行结果:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。