R - 字串:初學者指南
你好,未來的 R 程式設計師!今天,我們將踏上一段令人興奮的旅程,探索 R 語言中的字串世界。別擔心如果你從未寫過一行代碼 - 我將成為你的友好導遊,我們會一步步來。到了這個教學的結尾,你將像專家一樣操作字串!
什麼是字串?
在我們深入之前,讓我們從基礎開始。在編程中,字串簡單地就是字符序列。它可以是個單詞、一句話,甚至整個段落。在 R 語言中,我們通過將文字括在單引號('')或雙引號("")中來創造字串。
讓我們創造我們的第一個字串:
my_first_string <- "Hello, World!"
print(my_first_string)
當你運行這段代碼時,你會看到:
[1] "Hello, World!"
恭喜!你剛剛在 R 語言中創建並打印了你的第一個字串。<-
符號是我們在 R 中將值賦予變量的方式。把它看作是把字串 "Hello, World!" 放進標籤為 my_first_string
的盒子裡。
字串構建的規則
既然我們已經略嘗滋味,讓我們來探索一些在 R 中創造字串的規則。
1. 單引號與雙引號
在 R 中,你可以使用單引號或雙引號來創造字串:
string1 <- '我是一個字串'
string2 <- "我也是一個字串"
print(string1)
print(string2)
兩者都會正常工作。然而,有一個小技巧:如果你想在你的字串中包含引號,你可以使用相反類型的引號來括住它:
quote_string <- "她說,'R 是很棒的!'"
print(quote_string)
2. 轉義字符
有時候,你可能想在你的字串中包含特殊字符。為此,我們使用轉義字符,它們總是以反斜杠(\)開頭。
以下是一些常見的轉義字符:
轉義字符 | 含義 |
---|---|
\n | 新行 |
\t | 標籤 |
\" | 雙引號 |
\' | 單引號 |
\\ | 反斜杠 |
讓我們看看它們是如何工作的:
escaped_string <- "這是第一行。\n這是第二行。\t這是被標籤的。"
cat(escaped_string)
輸出:
這是第一行。
這是第二行. 這是被標籤的。
cat()
函數很適合打印帶有轉義字符的字串,因為它能正確解析它們。
3. 原始字串
如果你正在使用很多反斜杠(例如 Windows 的文件路徑),你可以使用原始字串。這些字串以 r
為前綴,並將反斜杠視為文字字符:
normal_string <- "C:\\Users\\YourName\\Documents"
raw_string <- r"(C:\Users\YourName\Documents)"
print(normal_string)
print(raw_string)
你會看到正常字串將反斜杠解析為轉義字符,而原始字串則將它們保持原樣。
字串操作
既然我們知道如何創造字串,讓我們學習如何玩弄它們!
1. 串接
串接只是一個把字串粘在一起的複雜詞。在 R 中,我們使用 paste()
或 paste0()
函數來做這個:
first_name <- "John"
last_name <- "Doe"
full_name <- paste(first_name, last_name)
print(full_name)
# `paste0()` 與之類似,但不會在元素之間添加空格
full_name_no_space <- paste0(first_name, last_name)
print(full_name_no_space)
輸出:
[1] "John Doe"
[1] "JohnDoe"
2. 子字串提取
通常,你可能想從字串中提取一部分。我們可以使用方括號 []
來做這個:
my_string <- "R 是驚人的!"
print(my_string[1:5]) # 獲取前 5 個字符
輸出:
[1] "R 是 "
3. 字串長度
要找出字串有多長,使用 nchar()
函數:
my_string <- "我有多長?"
print(nchar(my_string))
輸出:
[1] 15
4. 改變大小寫
R 提供了改變字串大小寫的函數:
mixed_case <- "ThIs Is MiXeD cAsE"
print(toupper(mixed_case)) # 全部大寫
print(tolower(mixed_case)) # 全部小寫
輸出:
[1] "THIS IS MIXED CASE"
[1] "this is mixed case"
5. 查找和替換
gsub()
函數很適合用於查找和替換字串的一部分:
sentence <- "The quick brown fox jumps over the lazy dog"
new_sentence <- gsub("fox", "cat", sentence)
print(new_sentence)
輸出:
[1] "The quick brown cat jumps over the lazy dog"
結論
哇,我們今天走了很長一段路!從創建你的第一個字串到像專家一樣操作它們,你已經邁出了進入 R 邏輯精彩世界的第一步。記住,熟練才能精準,所以不要害怕嘗試這些概念。
這裡有一個小挑戰給你:試著創建一個包含你名字的字串,從中提取你的首字母,然後將它們打印成大寫。如果你能做到這點,你距離成為 R 字串大師就不遠了!
持續編碼,持續學習,最重要的是,玩得開心!千里之行,始於足下,而你剛好在 R 邏輯中邁出了你的第一步。直到下次見,快樂編碼!
Credits: Image by storyset