二、數(shù)據(jù)類型和向量

生信技能樹數(shù)據(jù)挖掘課程學(xué)習(xí)筆記

二、數(shù)據(jù)類型和向量

數(shù)據(jù)類型
  • 數(shù)值型numeric:1.3、2
  • 字符型 character:“a”、‘nn’
  • 邏輯型 logical :TRUE T、FALSE F、NA

判斷數(shù)據(jù)類型的函數(shù):class( ),將要判斷的內(nèi)容寫在括號(hào)里,常見報(bào)錯(cuò):引號(hào)、拼寫錯(cuò)誤、大小寫

邏輯型數(shù)據(jù)

比較運(yùn)算的結(jié)果是邏輯值 >, <, <=, >=, == , !=
邏輯運(yùn)算 多個(gè)邏輯條件的連接與&、或|、非!

數(shù)據(jù)類型的判斷和轉(zhuǎn)換

is族函數(shù),判斷,返回值為TRUE或FALSE

is.numeric()       是否數(shù)值型數(shù)據(jù) 
is.logical()       是否邏輯型數(shù)據(jù) 
is.charactor()     是否字符型數(shù)據(jù)

as族函數(shù)實(shí)現(xiàn)數(shù)據(jù)類型之間的轉(zhuǎn)換

as.numeric()   將其他數(shù)據(jù)類型轉(zhuǎn)換為數(shù)值型 
as.logical()   將其他數(shù)據(jù)類型轉(zhuǎn)換為邏輯型 
as.charactor() 將其他數(shù)據(jù)類型轉(zhuǎn)換為字符型

多個(gè)數(shù)據(jù)如何組織?

數(shù)據(jù)結(jié)構(gòu): 向量 、數(shù)據(jù)框、矩陣、列表

數(shù)據(jù)框約等于“表格”。

向量則是數(shù)據(jù)框單獨(dú)拿出的一列,視為一個(gè)整體。

一個(gè)向量只能有一種數(shù)據(jù)類型,可以有重復(fù)值。

2.1向量的生成

(1)用 c()逐一放到一起

(2)連續(xù)的數(shù)字用冒號(hào)”:”

(3)有重復(fù)的用rep(),有規(guī)律的序列用seq(),隨機(jī)數(shù)用rnorm

(4)通過組合,產(chǎn)生更為復(fù)雜的向量。 paste0(rep("gene",times=3),1:3)

2.2 對(duì)單個(gè)向量進(jìn)行的操作

(1)賦值給一個(gè)變量名 = 隨意寫法 <- 規(guī)范的賦值符號(hào)

(2)簡(jiǎn)單數(shù)學(xué)計(jì)算

(3)根據(jù)某條件進(jìn)行判斷,生成邏輯值向量

(4)初級(jí)統(tǒng)計(jì) :max(x) 最大值、min(x) 最小值、mean(x) 均值、

? median(x) 中位數(shù)、var(x) 方差、sd(x) 標(biāo)準(zhǔn)差、sum(x) 總和

2.3.對(duì)兩個(gè)向量的操作

(1)邏輯比較,生成等長(zhǎng)的邏輯向量

x = c(1,3,5,1) 
y = c(3,2,5,6)
x == y 
[1] FALSE FALSE TRUE FALSE 
x %in% y #x的元素是否在y中 
[1] FALSE TRUE  TRUE FALSE 

(2)數(shù)學(xué)計(jì)算 x+y [1] 4 5 10 7

(3)連接 paste(x,y,sep=":") [1] "1:3" "3:2" "5:5" "1:1"

(4)交集、并集、差集 intersect(x,y)、union(x,y)、setdiff(x,y) #x里面有的,y沒有的

(5)x 和 y不一樣長(zhǎng):理解一下循環(huán)補(bǔ)齊 x==y 短的循環(huán)補(bǔ)齊,與前后沒有關(guān)系

paste0(rep(“gene”,3),1:3)
paste0(“gene”,1:3)

與向量x等長(zhǎng)的邏輯值可以如何生成? A、比較運(yùn)算 B、x %in% y C、用返回結(jié)果是邏輯值向量的函數(shù)

2.4.向量篩選(取子集)[]

根據(jù)邏輯值、根據(jù)位置

2.5 如何修改向量中的某個(gè)/某些元素

取子集+賦值

2.6 簡(jiǎn)單向量作圖
k1 = rnorm(12) 
k2 = rep(c("a","b","c","d"),each = 3) 
plot(k1) 
boxplot(k1~k2)
向量的幾個(gè)進(jìn)階小問題

1.兩個(gè)不同類型的向量合并在一起會(huì)怎么樣?

2.如何將兩個(gè)向量合到一起,組成一個(gè)長(zhǎng)向量?

x=c(1,3,5)
y=c(2,3,4)
test=c(x,y)
test
## [1] 1 3 5 2 3 4

3.如何在向量首/尾/中間某位置增加一個(gè)元素?

x=c(3,x)
x=c(x,4)

如何在向量第n位增加一個(gè)元素?

n=3
x=c(1,3,5,8,6)
x
## [1] 1 3 5 8 6
y=c(x[1:n-1],7,x[n:length(x)])
y
## [1] 1 3 7 5 8 6

寫成函數(shù)

join <- function(x,n,y){
  c(x[1:n-1],y,x[n:length(x)])
}
x=c(1,3,5,8,6)
join(x,3,7)
## [1] 1 3 7 5 8 6

4.如果向量x和y內(nèi)容一致但順序不一致,如何按照x的順序排列y?

x=letters[1:5]
y=letters[c(3,1,2,5,4)]
match(x,y)
## [1] 2 3 1 5 4
y[match(x,y)]
## [1] "a" "b" "c" "d" "e"
向量排序-match、rank、order、sort、rev
  1. sort 從小到大
  2. rev 倒序排列
  3. rank 返回秩次
  4. order 從小到大的值的位置(最小的值在哪個(gè)位置,次小的又在哪個(gè))
  5. match(x,y)按照x的順序來(lái)排y
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容