版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第R語言將變量分組的3種方法實例(含cut函數(shù)說明)目錄前言方法一:直接對分組變量進行賦值方法二:使用within函數(shù)對變量進行分組方法三:采用cut函數(shù)總結
前言
在數(shù)據(jù)處理的過程中,我們有時候需要將連續(xù)的數(shù)值數(shù)據(jù)轉換為類別數(shù)據(jù),比如將收入分成高、中和低三組,將學生成績分為優(yōu)、良、中、及格和不及格五組。
本來將基于R語言,采用三種方法來實現(xiàn);第一種是對變量直接進行重新賦值,第二種是使用within函數(shù)對語句進行組織,第三種是cut函數(shù)。
首先我們定義一個數(shù)據(jù)框,這個數(shù)據(jù)框包括學生姓名和數(shù)學成績兩個變量。
#定義數(shù)據(jù)框
mathScore-data.frame(name=c("劉文濤","王宇翔","田思雨","徐麗娜","丁文彬","李志國","王智強","宋麗芳","袁芳芳","張建國"),math=c(85,91,74,100,82,84,78,100,51,70))
head(mathScore)
接下來我們以90、80、70和60為界,將學生的數(shù)學成績分為優(yōu)、良、中、及格和不及格五類。
方法一:直接對分組變量進行賦值
#方法一:直接對分組變量進行賦值
attach(mathScore)
mathScore$group1[math=90]="優(yōu)"
mathScore$group1[math=80math90]="良"
mathScore$group1[math=70math80]="中"
mathScore$group1[math=60math70]="及格"
mathScore$group1[math60]="不及格"
detach(mathScore)
head(mathScore)
這種方法較易理解,但使用attach函數(shù)可能會出現(xiàn)一些意想不到的問題,因此我們可以采用within函數(shù),對代碼進行優(yōu)化,即方法二
方法二:使用within函數(shù)對變量進行分組
#方法二:使用within函數(shù)對變量進行分組
mathScore-within(mathScore,{
group2-NA
group2[math=90]="優(yōu)"
group2[math=80math90]="良"
group2[math=70math80]="中"
group2[math=60math70]="及格"
group2[math60]="不及格"
head(mathScore)
在方法二中,要注意within函數(shù)的寫法,賦值語句要用大括號括起來,并且每條賦值語句占一行。此外,在第一行首先定義了group2-NA這個變量。
方法三:采用cut函數(shù)
采用cut函數(shù)也是較為常用的一種方法,但要注意的是需要對間段點的開閉進行設定。
#方法三:采用cut函數(shù)
mathScore$group3-cut(mathScore$math,breaks=c(-Inf,60,70,80,90,Inf),labels=c("不及格","及格","中","良","優(yōu)"),right=FALSE)
在cut函數(shù)中:
breaks表示分界點,Inf表示無窮大;labels表示每個類別的名稱;right=FALSE表示表示區(qū)間為左閉右開,即分段時不包括右邊的點,即良為[80,
90);right=TRUE則表示左閉右開區(qū)間(默認是這種情形)
我們執(zhí)行mathScore代碼,就可以看到三種方法得到的結果是一致的。
關于cut函數(shù)參數(shù)的補充說明:
cut函數(shù)有兩個和分界點相關的參數(shù),一個是include.lowest,一個是right,下面對這兩個參數(shù)進行詳細說明。
right參數(shù):right=TRUE表示左閉右開區(qū)間,right=FALSE表示左開右閉區(qū)間include.lowest參數(shù):表示包括最小值或包括最大值
下面通過例子說明:
為了說明問題,我們把數(shù)據(jù)再重新定義一下,比原數(shù)據(jù)加入兩行:
#重新定義一下數(shù)據(jù)框
mathScore-data.frame(name=c("劉文濤","王宇翔","田思雨","徐麗娜","丁文彬","李志國","王智強","宋麗芳","袁芳芳","張建國","張志偉","李明"),math=c(85,91,74,100,82,84,78,100,51,70,0,NA))
head(mathScore)
我們把之前代碼改寫一下,把-Inf替換為0,把Inf替換為100,嘗試一下結果:
#問題代碼示例
mathScore$group-cut(mathScore$math,breaks=c(0,60,70,80,90,100),labels=c("不及格","及格","中","良","優(yōu)"),right=FALSE)
mathScore
我們可以看到輸出的結果如下:
namemathgroup
1劉文濤85良
2王宇翔91優(yōu)
3田思雨74中
4徐麗娜100NA
5丁文彬82良
6李志國84良
7王智強78中
8宋麗芳100NA
9袁芳芳51不及格
10張建國70中
11張志偉0不及格
12李明NANA
此結果有問題,因為100分不包括在內,因為right=FALSE是左閉右開區(qū)間,這時就要改寫代碼,加上參數(shù)include.lowest=TRUE
如下為正確代碼示例:
#正確代碼示例
mathScore$group-cut(mathScore$math,breaks=c(0,60,70,80,90,100),labels=c("不及格","及格","中","良","優(yōu)"),right=FALSE,include.lowest=TRUE)
mathScore
這時的結果如下,我們發(fā)現(xiàn)是結果正確的:
namemathgroup
1劉文濤85良
2王宇翔91優(yōu)
3田思雨74中
4徐麗娜100優(yōu)
5丁文彬82良
6李志國84良
7王智強78中
8宋麗芳100優(yōu)
9袁芳芳51不及格
10張建國70中
11張志偉0不及格
12李明NANA
因為right=FALSE是左閉右開區(qū)間,加上參數(shù)include.lowest=TRUE后,意為把最大值的右端點包括了。
為了深入了解兩個端點參數(shù)的關系,我們嘗試動下如下兩段代碼:
#對參數(shù)設置嘗試的代碼
mathScore$group-cut(mathScore$math,breaks=c(0,60,70,80,90,100),labels=c("不及格","及格","中","良","優(yōu)"),right=TRUE,include.lowest=FALSE)
mathScore
此代碼為左閉右開區(qū)間,不包括最小值左側端點;
#對參數(shù)設置嘗試的代碼
mathScore$group-cut(mathScore$math,breaks=c(0,60,70,80,90,100),labels=c("不及格","及格","中","良","優(yōu)"),right=TRUE,include.lowest=TRUE)
mathScore
此代碼為左閉右開區(qū)間,包括最小值區(qū)間左側端點。
因此,right和include.lowest總結如下:
right參數(shù)include.lowest參數(shù)備注FALSETRUE左閉右開,包括最大值端點TRUETRUE左開右閉,包括最小值端點
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 地下停車場安全導向系統(tǒng)設計標準
- 行政部門年度工作目標與任務分解
- 中考數(shù)學幾何題解題技巧總結
- 中小學語文課后輔導方案設計
- 小學楷體字帖練習指導方案
- 公司員工健身活動組織實施方案范例
- 家具行業(yè)廢水治理環(huán)保實施方案
- 機械現(xiàn)場技術服務方案設計實例
- 中小學光纜線路維護全方案
- 青少年班級閱讀推廣活動方案
- TOC基本課程講義學員版-王仕斌
- T-GDWCA 0035-2018 HDMI 連接線標準規(guī)范
- 面板堆石壩面板滑模結構設計
- 初中語文新課程標準與解讀課件
- 無人機裝調檢修工培訓計劃及大綱
- 中建通風與空調施工方案
- 高考語言運用題型之長短句變換 學案(含答案)
- 春よ、來い(春天來了)高木綾子演奏長笛曲譜鋼琴伴奏
- ARJ21機型理論知識考試題庫(匯總版)
- 2023年婁底市建設系統(tǒng)事業(yè)單位招聘考試筆試模擬試題及答案解析
- GB/T 4623-2014環(huán)形混凝土電桿
評論
0/150
提交評論