R函數詳解

字符串鏈接函數pastesql

一、字符串鏈接:paste(..., sep = " ", collapse = NULL)sep表示分隔符,默認爲空格。collapse表示若是不指定值,那麼函數paste的返回值是自變量之間經過sep指定的分隔符鏈接後獲得的一個字符型向量;若是爲其指定了特定的值,那麼自變量鏈接後的字符型向量會再被鏈接成一個字符串,之間經過collapse的值分隔
(1) paste函數把它的自變量連成一個字符串,中間用空格分開,如
> paste("Hello","world")
[1] "Hello world"
(2) 鏈接的自變量能夠是向量,這時各對應元素鏈接起來,長度不相同時較短的向量被重複使用。如
> paste("A", 1:6, sep = "")
[1] "A1" "A2" "A3" "A4" "A5" "A6"
(3) 若是但願將一個向量中全部字符鏈接在一塊兒且中間用逗號分隔,使用paste(x,collapse)便可,結果只是返回一個元素。
> paste(letters[1:6],collapse=",")
[1] "a,b,c,d,e,f"
(4) 同時使用了參數seq與collapse
> paste("A", 1:6, sep = "", collapse=",")
[1] "A1,A2,A3,A4,A5,A6"
(5)若是隻是但願向量x中每個元素和特定的字符(以下劃線_)鏈接,使用paste(x,seq=)便可,如
> paste(letters[1:4], seq='_')
[1] "a _" "b _" "c _" "d _"
二、應用方面,以上說的仍是paste的基礎經常使用方式,下面說的是我常常會用到的paste用法,與學習的時候不一樣,paste其實用法挺靈活的。
(1) R讀取數據的時候有時會讀取多個文件如:a.csv b.csv c.csv,d.csv........等,這時能夠用到paste來實現。
> path <- 'E:\\mytestdata\\'
> setwd(path)
> dir.data <- dir(path)
> dir.data
[1] "a.csv" "b.csv" "c.csv" "d.csv"
>for(i in 1:length(dir.data)){
>data <- read.csv(paste(path,dir.data[i],sep=''))
>}
循環讀取文件,data分別表示  "a.csv" "b.csv" "c.csv" "d.csv",能夠在循環裏對每一個文件進行操做
 
(2)R保存文件的時候也能夠用paste
write.csv(a.csv,file=paste(path,'data.csv'))
(3) paste也能夠鏈接sql語句
paste('select * from student where date =','date',sep=" ")
這樣的好處是能夠把date設置爲外來參數,進行傳參。
 
總結:雖然列舉了不一樣的用法,可是本質就是字符串鏈接,只不過在實際中用法比較靈活,須要多加練習,用多了會以爲很是好用。
三、使用paste0鏈接多個字符串
> date1 <- 20150101
> date2 <- 20151231
> paste0("select * from sales where stat_date between ",date1," and ",date2)
[1] "select * from sales where stat_date between 20150101 and 20151231"

dim(x)查看或設置數組的維度向量數組

> a <- matrix(1:20,nrow=5,ncol=4,byrow=T)
> a
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12
[4,]   13   14   15   16
[5,]   17   18   19   20
> is.matrix(a)
[1] TRUE
> dim(a) #查看或設置數組的維度向量
[1] 5 4
# 錯誤的用法
> dim(a) <- c(4,4)
Error in dim(a) <- c(4, 4) : dims [product 16]與對象長度[20]不匹配
> # 正確的用法
> a <- 1:20
> dim(a) <- c(5,4) #轉換向量爲矩陣
> a
     [,1] [,2] [,3] [,4]
[1,]    1    6   11   16
[2,]    2    7   12   17
[3,]    3    8   13   18
[4,]    4    9   14   19
[5,]    5   10   15   20
is系列和as系列函數用來判斷變量的屬性和轉換變量的屬性
> is.character(a)
[1] FALSE
> is.numeric(a)
[1] TRUE
> is.matrix(a)
[1] TRUE
> is.data.frame(a)
[1] FALSE
# 矩陣轉換爲data.frame
> is.data.frame(as.data.frame(a))
[1] TRUE
相關文章
相關標籤/搜索