數(shù)據(jù)挖掘20210107學(xué)習(xí)筆記

數(shù)據(jù)結(jié)構(gòu)

Vector向量—一維

> c(1,2,5,6,7)
[1] 1 2 5 6 7
> sample(1:100,5)   #從1到100這100個(gè)數(shù)中隨機(jī)挑選5個(gè)數(shù)
[1] 13 53 89 27 84
>set.seed(564) #設(shè)置隨機(jī)種子后,sample函數(shù)隨機(jī)挑選的結(jié)果一樣

Matrix矩陣—二維

矩陣:長度相同、數(shù)據(jù)類型相同;數(shù)據(jù)框:長度相同、數(shù)據(jù)類型可以不相同

List列表

列表:長度可以不同、數(shù)據(jù)類型可以不同,可以有多級元素

數(shù)據(jù)框

數(shù)據(jù)框?qū)傩悦枋? (1)維度 (2)行名/列名

數(shù)據(jù)框取子集(一個(gè)、一行、一列、多行多列)

(1)向量 對應(yīng) 位置;數(shù)據(jù)框?qū)?yīng) 坐標(biāo)

df[2,2]    #第二行二列的元素
df[2,]     #取一行
df[,2]     #取一列
df[c(1,3),1:2]    #行列雙選

(2)根據(jù)行名或列名

df[,"gene"]
df[,c('gene','exp')]

向量也可按“名字”提取子集

數(shù)據(jù)框修改

df[3,3]<- 5    ##改一個(gè)格
df$exp<-c(12,23,50)    ##改一整列

數(shù)據(jù)框進(jìn)階

(1)行數(shù)較多的數(shù)據(jù)框可以截取前/后幾行查看
head(iris)      #默認(rèn)前六行
tail(iris)      #默認(rèn)最后六行
head(iris, 3)
(2)行列數(shù)都多的數(shù)據(jù)框可取前幾行前幾列查看

這種方法不經(jīng)過賦值,只是看看

iris[1:3, 1:3]
(3)查看每一列的數(shù)據(jù)類型和具體內(nèi)容
str(iris)
(4)去除含有缺失值的行
na.omit(df)

僅按照某一列來去除缺失值、缺失值替換:tidyr包

(5)兩個(gè)表格的連接

按列連接:cbind 行數(shù)相同
按行連接:rbind 列數(shù)相同
智能連接:merge() 需要有共同的列名
交集、并集、補(bǔ)集、全集等,參考dplyr包
列名不同時(shí),用merge

merge(test1, test3, by.x = "name", by.y = "NAME")

矩陣

矩陣新建和取子集

m <- matrix(1:9, nrow = 3)

矩陣不支持 $

矩陣轉(zhuǎn)置和轉(zhuǎn)換

轉(zhuǎn)置:t(m)
轉(zhuǎn)換:as.data.frame(m)

畫熱圖

pheatmap::pheatmap(m)  #默認(rèn)有聚類
pheatmap::pheatmap(m, cluster_cols = F, cluster_rows = F)

列表

列表新建和取子集

> l <- list(m=matrix(1:9, nrow = 3),
+           df=data.frame(gene  = paste0("gene",1:3),
+                         sam   = paste0("sample",1:3),
+                         exp   = c(32,34,45)),
+           x=c(1,3,5))
>l[[2]]   #2代表位置
>l$df

刪除變量:rm刪除的是整個(gè)變量,不是一部分

rm(l) #刪除一個(gè)
rm(df,m) #刪除多個(gè)
rm(list = ls()) #刪除全部
ctrl+l #清除控制臺

元素的名字 - names()

元素可命名,用函數(shù)names(),
可以根據(jù)名字提取子集,
向量、數(shù)據(jù)框、列表通用。

> x =1:10
> names(x) = letters[1:10]
> x["a"]
a 
1    #名字為a的元素是1
練習(xí)
> table(iris$Species)   #統(tǒng)計(jì)重復(fù)值用table()
> test <- as.matrix(iris[,1:4])
> rownames(test) <- paste0("flower",1:nrow(test))
> test <- test[-(51:100),]
> tl <- list(x1=iris,x2=test)    #最好對iris、test起名字,不然取子集時(shí),子集名字為空值
> tl$x2  或 tl[[2]] 
> names(tl)[2] <- "td"   #修改的是子集的名字,而[[2]]修改的數(shù)據(jù)本身
> colnames(y) = x$ID[match(colnames(y), x$file_name)]
總結(jié)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

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

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