R in Action 1 基本資料結構

2022-07-12 08:03:11 字數 3979 閱讀 1661

一資料型別 

1、向量操作

1 a 

2 b

one", "

two", "

three")

3 c

上面把3列向量賦與a,b,c,注意這裡向量內的元素必須是同一種資料型別(數值型、字元型和邏輯型)

訪問向量如a[c(2,4)],將會得到a[2]跟a[4]的值,注意r與c、python不一樣,下標訪問從1開始。

a[2:4] 得到a[2],a[3],a[4]三個值,這裡2:4等價於c(2,3,4)

2、矩陣操作

1 > y

2 >y

3 [,1] [,2]

4 [1,] 1 6

5 [2,] 2 7

6 [3,] 3 8

7 [4,] 4 9

8 [5,] 5 10

9 > y

10 >y

11 [,1] [,2]

12 [1,] 1 2

13 [2,] 3 4

14 [3,] 5 6

15 [4,] 7 8

16 [5,] 9 10

上面**是建立矩陣的**,第一段跟第二段的區別是後者採用了按行的方式填充,r中預設是按列填充。

1 cells 

東邪', '

西毒', '

南帝', '北丐'

)2 rnames

r1", "r2"

)3 cnames

c1", "c2"

)4 mymatrix

5 dimnames =list(rnames, cnames))

67 >mymatrix

8c1 c2

9 r1 "東邪"

"西毒"10 r2 "南帝"

"北丐"

類似跟向量一樣矩陣內的元素也要保持一致,上面**可以給行列取別名。

訪問矩陣:

1 > mymatrix[2]

2 [1] "南帝"

3 > mymatrix[2,2]

4 [1] "北丐"

5 > mymatrix[2,1:2]

6c1 c2 7"

南帝""北丐

"8 > mymatrix[2,]

9c1 c2 10"

南帝""北丐

"11 > mymatrix[,1]

12r1 r2 13"

東邪""南帝

"14 > mymatrix[,1:2]

15c1 c2

16 r1 "東邪"

"西毒"17 r2 "南帝"

"北丐"

3、資料框操作

這是r裡應用較為廣泛的資料結構,它較矩陣具有更一般的形式,data_frame

建立乙個資料框

1 > patientid 

2 > age

3 > diabetes

type1

", "

type2

", "

type1

", "

type1")

4 > status

poor

", "

improved

", "

excellent

", "

poor")

5 > patientdata

6 +status)

7 >patientdata

8patientid age diabetes status

9 1 1 25type1 poor

10 2 2 34type2 improved

11 3 3 28type1 excellent

12 4 4 52 type1 poor

patientdata是乙個包含4列的資料框,訪問每一列可以用patientdata$age實現

對每一列做處理的時候 都要加上資料框名字+$這個確實很繁瑣,可以利用和with()函式簡化

例如

1

plot(patientdata$patientid,patientdata$age)23

attach(patientdata)

4plot(patientid,age)

5 detach(patientdata)

第一行**可以用後三行**替換,但是這裡要注意乙個問題,就是資料框裡面列名不能跟外部記憶體物件同名。

為解決這個問題,下面直接把操作都放到with()裡面。

1 with(patientdata,)
4、因子操作

這個相當於把列裡面字元型元素,進行數字編碼,在分類演算法裡面也通常對字元型特徵進行數字編碼(通常新增特徵進行01編碼)

1 > patientid 

2 > age

3 > diabetes

type1

", "

type2

", "

type1

", "

type1")

4 > status

poor

", "

improved

", "

excellent

", "

poor")

5 > diabetes

6 > status

7 > patientdata

8 +status)

9 >str(patientdata)10'

data.frame

': 4 obs. of 4variables:

11 $ patientid: num 1 2 3 4

12 $ age : num 25 34 28 52

13 $ diabetes : factor w/ 2 levels "

type1

","type2

": 1 2 1 1

14 $ status : ord.factor w/ 3 levels "

excellent

"improved

"<..:>

15 >summary(patientdata)

16patientid age diabetes status

17 min. :1.00 min. :25.00 type1:3 excellent:1

18 1st qu.:1.75 1st qu.:27.25 type2:1 improved :1

19 median :2.50 median :31.00 poor :2

20 mean :2.50 mean :34.75

21 3rd qu.:3.25 3rd qu.:38.50

22 max. :4.00 max. :52.00

通常內建的是按字母順序建立,例如excellent、improved、poor編碼成0、1、2

5、列表操作

1 g 

my first list

"2 h

3 j

4 k

one", "

two", "

three")

5 mylist

列表訪問的時候mylist[[2]]和mylist[['age']]

Opencv Python API 基本資料結構

本例使用python3.7 opencv環境配置方法 pip install numpy matplotlib 構造2 行 4列 全是0的uchar型別的二維陣列import numpy as np z np.zeros 2 4 np.uint8 type z zarray 0,0,0,0 0,0,...

1 基本資料型別

python 3支援int float bool complex 複數 a,b,c,d 20,5.5,true,3 4jprint type a type b type c type d class int class float class bool class complex a 4 5 加法 ...

redis基本資料結構 1

redis的作者為了方便自己的使用,在redis中定義了動態字串sds,鍊錶,字典dict,跳躍表skiplist,整數集合intset和壓縮列表ziplist這六種資料結構。下文,我簡要地介紹一下幾種資料結構的定義。sds的全稱叫 dynamic string,它的定義和注釋如下 struct s...