R語言-使用ifelse進行數據分組

數據分組,根據數據分析對象的特征,按照一定的數值指標,把數據分析對象劃分為不同的區間部分來研究,以揭示內在的聯系和規律性;

在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)'去掉行名。 這可以在寫入文件時使用附加參數刪除。

執行結果:

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀:

    None Found