改變大小寫
如果要改變字串中英文字母的大小寫,可以運用 toupper
與 tolower
函數:
toupper("Foo Bar")
[1] "FOO BAR"
tolower("Foo Bar")
[1] "foo bar"
子字串
若要從字串中取出一部分的子字串,可以使用 substr
或 substring
函數,這兩個函數的用法幾乎都相同,第一個參數是輸入的字串,第二與第三個參數則是子字串的開始與結束位置:
substr("abcdef", 2, 4)
[1] "bcd"
substring("abcdef", 2, 4)
[1] "bcd"
substr
與 substring
只有在處理向量時會有一些小差異:
x.strings <- c( "abcdefghij", "ABCDEFGHIJ", "1234567890" ) substr(x.strings, 1:4, 8)
[1] "abcdefgh" "BCDEFGH" "345678"
substring(x.strings, 1:4, 8)
[1] "abcdefgh" "BCDEFGH" "345678" "defgh"
分割字串
若要將一個字串分割成多個字串,可以使用 strsplit
函數,第一個參數是輸入的字串,而第二個參數則是分隔字串:
strsplit("foo,bar,Foo,BAR", ",")
[[1]] [1] "foo" "bar" "Foo" "BAR"
strsplit
函數預設會使用正規表示法(regular expression)來匹配分隔字串,如果要將指定的分隔字串視為一般的文字,可以加上 fixed = TRUE
參數。
strsplit("foo+bar+Foo+BAR", "+", fixed = TRUE)
[[1]] [1] "foo" "bar" "Foo" "BAR"
strsplit
函數的輸出是一個列表(list),這樣設計的原因在於處理向量時,每一個結果的長度可能會不同:
x.str <- c("foo bar Foo BAR", "abc def") strsplit(x.str, " ", fixed = TRUE)
[[1]] [1] "foo" "bar" "Foo" "BAR" [[2]] [1] "abc" "def"
這是一個使用正規表示法的例子,使用逗號、句點或空白作為分隔字元:
strsplit("foo,bar.Foo BAR", "[,. ]")
[[1]] [1] "foo" "bar" "Foo" "BAR"
檔案路徑
在 R 中我們可以藉由 getwd
函數取得目前的工作目錄,在存取檔案時若沒有特別指定路徑的話,就會以這個路徑為準。
getwd()
[1] "d:/workspace"
我們可以使用 setwd
函數來更改工作目錄:
setwd("c:/mypath") getwd()
[1] "c:/mypath"
這裡我們使用正斜線(/
)來區隔路徑,而如果要使用 Windows 慣用的反斜線也可以,只是在輸入反斜線時,要使用跳脫字元:
setwd("c:\\mypath")
另外我們也可以使用 file.path
函數來從各個目錄名稱來建立完整的路徑:
file.path("c:", "Program Files", "R")
[1] "c:/Program Files/R"
R.home
可以顯示 R 的安裝路徑:
R.home()
[1] "C:/PROGRA~1/R/R-32~1.4"
basename
可以從一串完整路徑中取出不包含路徑的檔案名稱:
basename("C:/Users/GTWang/Documents")
[1] "Documents"