R語言中cut函式

2021-10-02 09:18:56 字數 2796 閱讀 2319

cut函式把連續變數分割為類別

要將連續型變數變成離散型因子,需要對連續型變數進行切割,每個區間可成為乙個因子。可以用cut函式完成連續型變數的切割工作。

函式cut()能夠把數值變數切成不同的塊,然後返回乙個因子,對數值資料進行分組:使用cut函式對數值資料進行分組

cut(x,breaks,labels=null,include.lowest=false,right=true,dig.lab=3,ordered_result=false,...)
引數注釋x

數值變數

breaks

切割點向量,有兩個取值,單個整數(表示區分為幾個區間)和向量(按照向量裡面的數進行分割)

labels

每乙個分組的標籤,即離散化後因子的標籤,#labels為true時因子表示為區間,即標籤

right

邏輯值,預設為true(左開右閉);false(左閉右開)

ordered

true,生成有序因子

include.lowest

邏輯值,indicating if an 『x[i]』 equal to the lowest (or highest, for right = false) 『breaks』 value should be included.

dig.lab=n

表示區間分割值為n位小數

例1

x<-rep(0:3,c(1,2,3,4))

x# [1] 0 1 1 2 2 2 3 3 3 3

length(x)

#[1] 10

cut(x,breaks=0:3)

#結果[1] (0,1] (0,1] (1,2] (1,2] (1,2] (2,3]

[8] (2,3] (2,3] (2,3]

levels: (0,1] (1,2] (2,3]

#解釋:

breaks=0:3,即0,1,2,3;由於right為預設值(左開右閉),所以將

區間分為(0,1]、(1,2]、(2,3]

x的值為0 1 1 2 2 2 3 3 3 3

#x

#[1] 0 1 1 2 2 2 3 3 3 3

cut(x,c(-inf,0,1,2,3,inf))

#結果[1] (-inf,0] (0,1] (0,1] (1,2] (1,2]

[6] (1,2] (2,3] (2,3] (2,3] (2,3]

5 levels: (-inf,0] (0,1] (1,2] ... (3, inf]

#5個區間,預設左開右閉

#0屬於區間(-inf,0],返回(-inf,0]

#1屬於區間(0,1],返回(0,1]

...

例2

y<-c(1,2,3,4,5,2,3,4,5,6,7)

cut(y,3,dig.lab=4,ordered=true)

#breaks為單個整數,表示區分為幾個區間

#dig.lab表示區間分割值為4位小數

#ordered=true,生成有序因子

#結果[1] (0.994,3] (0.994,3] (0.994,3] (3,5]

[5] (3,5] (0.994,3] (0.994,3] (3,5]

[9] (3,5] (5,7.006] (5,7.006]

levels: (0.994,3] < (3,5] < (5,7.006]

例3

現在想將年齡age分為小孩,青年,中年,老年,可將區間分為

age<=12的為小孩;1260的為老年,使用cut函式,**如下;

age<-c(55,12,30,9,22,24,78,109,45,66,49)

height<-c(156,175,154,165,184,125,148,168,155,157,168)

dd<-data.frame(age,height)

dd#結果

age height

1 55 156

2 12 175

3 30 154

4 9 165

5 22 184

6 24 125

7 78 148

8 109 168

9 45 155

10 66 157

11 49 168

a<-cut(dd$age,breaks=c(-inf,12,30,60,inf),

labels = c("小孩","青年","中年","老年"))

dd<-cbind(dd,a)

dd#結果

age height a

1 55 156 中年

2 12 175 小孩

3 30 154 青年

4 9 165 小孩

5 22 184 青年

6 24 125 青年

7 78 148 老年

8 109 168 老年

9 45 155 中年

10 66 157 老年

11 49 168 中年

R語言中cut 函式的用法?

r語言中cut 函式的用法?cut 切割將x的範圍劃分為時間間隔,並根據其所處的時間間隔對x中的值進行編碼。引數 breaks 兩個或更多個唯一切割點或單個數字 大於或等於2 的數字向量,給出x被切割的間隔的個數。breaks 採用fivenum 返回五個資料 最小值 下四分位數 中位數 上四分位數...

R語言中之分布函式

r語言中提供了四類有關統計分布的函式,以下為函式和相應字首 d 概率密度函式 p 累計分布函式 q 分位函式 r 隨機數函式 下表為分布函式表,加上不同的字首表示不同的含義 分布函式 分布 r中名字 附加引數 beta beta shape1 shape2 ncpbinomial binom siz...

R語言中泛型函式

r語言1.0 toc whoami function x,usemethod whoami whoami.foo function x print i am a foo whoami.bar function x print i am a bar whoami.default function x ...