R语言-使用ifelse进行数据分组

时间:2022-03-01 18:35:48

数据分组,根据数据分析对象的特征,按照一定的数值指标,把数据分析对象划分为不同的区间部分来研究,以揭示内在的联系和规律性;

在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语言-使用ifelse进行数据分组

补充: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)'去掉行名。 这可以在写入文件时使用附加参数删除。

执行结果:

R语言-使用ifelse进行数据分组

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:https://blog.csdn.net/lll1528238733/article/details/75000634