1.向量中的元素獲取 [,[[,$
1.1靠位置來(lái)獲取元素
x<-seq(8,12) #產(chǎn)生8,9睦霎,10梢卸,11,12
x[4] #產(chǎn)生11
x[-4] #產(chǎn)生8副女,9蛤高,10,12
x[2:4] #產(chǎn)生9肮塞,10襟齿,11
x[-(2:4)] #產(chǎn)生8,12
x[c(1,5)] #產(chǎn)生8姻锁,12
1.2 靠邏輯獲取數(shù)據(jù)
x[x==10]? #產(chǎn)生10枕赵,x==10產(chǎn)生F,F,T,F
x[x<12]? #產(chǎn)生8,9位隶,10拷窜,11
x[x %in% c(9,13)]? #產(chǎn)生9
1.3 靠名稱(chēng)獲取數(shù)據(jù)
names(x) <-c("a","b","c","d","e")
x["c"] #產(chǎn)生10
2. 矩陣中的元素獲取
x<- seq(1:9)
m<- matrix(x, nrow=3, ncol=3)
colnames(m) <-c("a","b","c")
a b c
1 4 7
2 5 8
3 6 9
class(m) #輸出為"matrix"
m[,1] 產(chǎn)生123 #[行,列]
m[2,3] 產(chǎn)生8 第二行第三列
3. data.frame 的元素獲取
df <-data.frame(xz=1:3, y=c("a","b","c")) #產(chǎn)生的data.frame如下
xz y
1 a
2 b
3 c
df[1] #返回的是第一列xz123
class(df[1]) #返回的還是data.frame
df[[1]] #返回的是123,會(huì)破壞數(shù)據(jù)框的結(jié)構(gòu)
class(df[[1]]) #返回的是"integer"
df$xz #返回的是123,df$列名篮昧,這里class后是integer赋荆,$會(huì)不完全匹配,如df$x返回的也是123
subset函數(shù)也能起到這樣的作用懊昨,subset(df, subset=xz>1, select=y) #返回的是bc窄潭,subset(數(shù)據(jù),行酵颁,列)
數(shù)據(jù)框是特殊的列表嫉你,矩陣是特殊的數(shù)據(jù)框,構(gòu)成的元素是向量
4.字符串的元素獲取
4.1截取字符串
substr(x, start, stop)
substring(x,first, last)
舉個(gè)例子躏惋,test<-"I LOVE YOU"
substr(test,3,6) #返回的是"LOVE"
substring(test,3) #返回的是"LOVE YOU"
4.2 拆分字符串
strsplit(x, split, extended=TRUE, fixed=FALSE, perl=FALSE)
unlist(strsplit("a.b.c", "\\.") )#返回的是 "a" "b" "c",因?yàn)?本身代表了所有元字符(也就是所有字符)幽污,因此需要\\.表示.而不是任意字符,否則會(huì)切割所有字符而不是.
4.3 連接字符串
paste(..., sep="", collapse=NULL)
paste("a","b","c", sep=".") #返回的是"a.b.c"
paste("A",1:6, sep=") #返回的是"A1""A2""A3""A4""A5""A6",這里的"表示去除A與數(shù)字間的間隙
paste("A", 1:6,sep="-") #返回的是"A-1"到"A-6"
paste("A", 1:6, sep="-", collapse="=") #返回的是"A-1=A-2=A-3=A-4=A-5=A-6"
paste0("A","B","C") #返回的是"ABC"
4.4 字符串計(jì)數(shù)
nchar(test) #返回的是該字符串中有多少字符簿姨,10