R語言雜談(二)

1.向量中的元素獲取 [,[[,$

1.1靠位置來獲取元素

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 靠名稱獲取數(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,會破壞數(shù)據(jù)框的結(jié)構(gòu)

class(df[[1]]) #返回的是"integer"

df$xz #返回的是123,df$列名,這里class后是integer,$會不完全匹配,如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)

舉個例子,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",因為.本身代表了所有元字符(也就是所有字符),因此需要\\.表示.而不是任意字符,否則會切割所有字符而不是.

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 字符串計數(shù)

nchar(test) #返回的是該字符串中有多少字符,10

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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