所有資料來(lái)源于生信技能樹(shù)
1. 向量
誰(shuí)在逗號(hào)后面,出來(lái)的結(jié)果是誰(shuí)的下標(biāo)
a <- c("11","22","33","44","55")
b <- c("22","11","33","44","55")
match(a,b)#出來(lái)b中的字符在a中的順序
#[1] 2 1 3 4 5
b[match(a,b)]#將b按照a的順序進(jìn)行排序
#[1] "11" "22" "33" "44" "55"
-
向量講完了
2.數(shù)據(jù)框、矩陣和列表
-
(1)矩陣
長(zhǎng)度相同、數(shù)據(jù)類(lèi)型相同的向量可以組合成矩陣
矩陣中只有一種數(shù)據(jù)類(lèi)型
-
(2)數(shù)據(jù)框——Dataframe
長(zhǎng)度相同早龟、數(shù)據(jù)類(lèi)型不同或相同的向量可以組合成數(shù)據(jù)框
-
(3)列表——List
長(zhǎng)度可以不同、數(shù)據(jù)類(lèi)型可以不同的向量組合
列表中可以包含向量猫缭、矩陣葱弟、數(shù)據(jù)框或小列表
-
2.1數(shù)據(jù)框——Dataframe
options(stringsAsFactors = F)
- 在4.0以前的版本要運(yùn)行這行代碼
- 在4.0以后的版本默認(rèn)是這個(gè)設(shè)置,可以不運(yùn)行這行代碼
-
(1)數(shù)據(jù)框的屬性
dim(df)#顯示df幾行幾列
nrow(df)#顯示df幾行
ncol(df)#顯示df幾列
rownames(df)#顯示df的行名
colnames(df)#顯示df的列名
-
(2)數(shù)據(jù)框取子集
df[2,2]#取df的第2行猜丹、第2列的向量
df[2,]#取df的第2行
df[,2]#取df的第2列
df[c(1,3),1:2]#取第1芝加、3行和1-2列的向量
df[,-ncol(df)]#取除最后一列的所有列
學(xué)會(huì)用函數(shù)和代碼
df[3]#取第3列,仍是數(shù)據(jù)框
df[,3]#取第3列,但變?yōu)橄蛄?/code>
df$xx#取df數(shù)據(jù)框的xx列
-
(3)數(shù)據(jù)框修改
練習(xí)題3-2
-
(4)數(shù)據(jù)框查看前/后幾行
head(df)#只取前幾行查看,默認(rèn)是前6行
tail(df)#只取最后幾行查看
head(df藏鹊,3)#只取前3行查看
df[1:3,1:3]#只取df前3行/3列查看
-
(5)查看數(shù)據(jù)框的數(shù)據(jù)類(lèi)型和具體內(nèi)容
str(df)#查看df的數(shù)據(jù)類(lèi)型和具體內(nèi)容
num:numeric數(shù)值型
int:interge整數(shù)型
factor:因子型
chr:character文本型
-
(6)去除含有缺失值的行
na.omit(df)#去除含有缺失值的行
-
(7)兩個(gè)表格的連接
①按列合并
cbind(df)#按照列進(jìn)行合并兩個(gè)表格
②按行合并
rbind(df)#按照行進(jìn)行合并兩個(gè)表格
③不同行腺办、列表格的連接
merge(df1,df2,by="name")#按照共同列進(jìn)行合并兩個(gè)表格
④不同列名表格的連接
不同列名的表格進(jìn)行合并code
merge(x=df1,y=df2,by.x="name",by.y="NAME")
-
2.2矩陣
-
(1)新建和取子集
矩陣不能用$取子集
-
(2)矩陣的轉(zhuǎn)置和轉(zhuǎn)換
t(matrix(1:9倔监,nrow=3))
-
(3)矩陣畫(huà)熱圖
#R語(yǔ)言中會(huì)自動(dòng)聚類(lèi),如果不想聚類(lèi),需要自定義設(shè)置
-
2.3列表
-
(1)列表新建和取子集
左邊框是列表中元素的名字
右邊框是元素的內(nèi)容
l[[2]]"#取列表l的第2個(gè)元素,根據(jù)圖中可知為df"
l$df"#取列表l的df元素"
l2 <- l[3]#一個(gè)中括號(hào)是取列表中的小列表
class(l2)
#[1] "list"
l3 <- l[[3]]#兩個(gè)中括號(hào)是取列表中的元素
class(l3)
#"numeric"
用殺牛的刀殺雞来吩,咋的了,你管得著嗎你——花花
老板蔽莱,我不放香菜——花花