R函式詳解

2022-08-03 21:51:23 字數 2879 閱讀 3746

字串連線函式paste

1、字串連線: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 _"

2、應用方面,以上說的還是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分別表示  "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設定為外來引數,進行傳參。

總結:雖然列舉了不同的用法,但是本質就是字串連線,只不過在實際中用法比較靈活,需要多加練習,用多了會覺得非常好用。

3、使用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

詳解R語言plot函式所有引數

plot函式是r語言最基礎的函式之一,引數較多,難以記住所有的引數詳細用法,這裡總結一下,以便查閱。col.main 主編圖顏色 col.sub 副標題顏色 col.axis 座標軸顏色 col.lab 座標軸標籤顏色 fg圖形的前景色 bg圖形的背景色 cex.main 標題放縮 cex.sub ...

R語言 函式

函式是一組組合在一起以執行特定任務的語句。r語言具有大量內建函式,使用者可以建立自己的函式。在r語言中,函式是乙個物件,因此r語言直譯器能夠將控制傳遞給函式,以及函式完成動作所需的引數。該函式依次執行其任務並將控制返回到直譯器以及可以儲存在其他物件中的任何結果。函式定義 使用關鍵字函式建立r語言的函...

r 與 n詳詳解

r就是 回到行首 n就是 到下一行 即 r是回車,n是換行,前者使游標到行首,後者使游標下移一格。通常用的enter是兩個加起來的,即 r n 直接這麼說你可能沒啥感覺,但是真正到了編碼的時候你就發現了 全tm是吭 先舉個栗子瞅瞅 printf aaaa r n bbbbbb print ccccc...