上期課后題目答案:
生成sample4上枕,sample8棒旗,sample12......sample28
paste(rep("sample",time=7),seq(from=4,to=28,by=4))
###time可為小于7的任意整數(shù)啥繁,暨循環(huán)補(bǔ)齊
###想辦法取代7
c <- seq(from=4,to=28,by=4)
paste(rep("sample",time=as.numeric(length(c))),c)
數(shù)據(jù)類(lèi)型轉(zhuǎn)換的優(yōu)先順序
字符型>數(shù)值型>邏輯性
賦值
賦值符號(hào):=或<-
賦值+輸出一起執(zhí)行:x<c();x
對(duì)單個(gè)向量進(jìn)行操作
常見(jiàn)初級(jí)統(tǒng)計(jì):max唱蒸,min敷矫,mean,median低矮,var(方差)印叁,sd(標(biāo)準(zhǔn)差),sum
length(長(zhǎng)度)军掂,unique(去重復(fù))轮蜕,duplicated(對(duì)應(yīng)元素是否重復(fù)),table(重復(fù)值統(tǒng)計(jì))
對(duì)兩個(gè)向量進(jìn)行操作
兩個(gè)向量等長(zhǎng)
邏輯比較蝗锥,生成等長(zhǎng)的邏輯向量
x = c(1,3,5,1)
y = c(3,2,5,6)
x == y x的每個(gè)元素與y一一對(duì)應(yīng)比較
x %in% y #x中的元素在y中嗎
#連接
paste(x,y,sep=":")
paste(x,y,sep="")
paste(x,y,sep="-")
#paste(x,y,sep="")=paste0(x,y)兩函數(shù)等同
#交集跃洛、并集、差集
intersect(x,y)#默認(rèn)去重復(fù)值
union(x,y)#默認(rèn)去重復(fù)值
setdiff(x,y)#尋找x中存在y不存在的值
setdiff(y,x)#尋找y中存在x不存在的值
兩個(gè)向量不等長(zhǎng)
#循環(huán)補(bǔ)齊
x = c(1,3,5,6,2)
y = c(3,2,5)
x == y#返回與最長(zhǎng)向量元素相同的邏輯值
x%in%y#返回與向量x元素相同的邏輯值
#利用循環(huán)補(bǔ)齊簡(jiǎn)化代碼
#paste0(rep("gene",3),1:3)=paste0("gene",1:3)
向量取子集方法
#利用邏輯值對(duì)向量取子集
x = c(1,3,5,6,2)
x[x==5]#取出x的第三個(gè)元素
x[x>1]#取出x大于1的子集
#按照下標(biāo)取子集
x <- c(8:12);x
x[4]#取出x的第四個(gè)
x[2:4]#取出x中第二到第四個(gè)元素
x[c(1,5)]#取出x中第一個(gè)和第五個(gè)元素
###V找椤;憬摺!中括號(hào)里面必須是可以運(yùn)行的函數(shù)
x[-4]#去掉x的第四個(gè)元素
x[length(x)-1]#取出x中倒數(shù)第二個(gè)元素
x[-(2:4)]#取出x中的第一個(gè)和第五個(gè)元素
向量取子集總結(jié):中括號(hào)里是與X等長(zhǎng)的邏輯值向量
按照位置:中括號(hào)是由x的下標(biāo)組成的向量
修改向量中的某個(gè)某些元素
#取子集+賦值
x <- c(8:12);x
x[4]<-40
x[x>10]<-10
match函數(shù)的應(yīng)用
match(x,y)#根據(jù)x為模板穴张,調(diào)整y的順序细燎,返回的結(jié)果是y的下標(biāo)
x <- c("A","B","C","D","E")
y <- c("B","D","E","A","C")
match(x,y)
y[match(x,y)]#誰(shuí)在外面,誰(shuí)就在后面
引用: