R - 變數:初學者指南

你好,有抱負的R語言編程新手!我很興奮能成為你進入R語言變數世界的導師。作為一個教導編程多年的老師,我可以向你保證,理解變數就像學習騎自行車一樣——一旦你掌握了它,你就永遠不會忘記!所以,讓我們一起深入探究,讓這個過程變得有趣且容易理解。

R - Variables

變數是什麼?

在我們深入細節之前,讓我們從基礎開始。可以把變數想象成標籤過的盒子,你可以在裡面存儲不同類型的信息。就像你可能會有一個標籤為“書籍”的盒子來存放書籍一樣,在R語言中,你可以創建變數來存儲數字、文本,甚至是更複雜的數據。

變數賦值

現在,讓我們學習如何創建這些盒子(變數)和在它們中放入東西!

賦值的基本概念

在R語言中,我們使用賦值運算符 <- 來創建變數。它看起來像一個指向左邊的箭頭,這正是它的作用——它將右邊的值指派給左邊的變數名。

my_first_variable <- 42

在這個例子中,我們創建了一個名為 my_first_variable 的變數,並將數字42存儲在其中。簡單吧?

你也可以使用 = 進行賦值,但 <- 在R社群中更常見。

my_second_variable = "Hello, R!"

多重賦值

你可以在一行中賦值給多個變數:

x <- y <- z <- 10

這將創建三個變數(xyz),並將數字10賦值給它們。這就像設置一排相同的盒子,每個盒子中都含有數字10。

變數命名規範

在給變數命名時,請記住:

  • 名稱可以包含字母、數字、點(.)和下劃線(_)
  • 名稱必須以字母或點開頭
  • 如果名稱以點開頭,則不能緊跟著數字
  • 名稱區分大小寫(myVar 和 myvar 是不同的)

以下是一些有效和無效的變數名稱:

valid_name <- 1
Valid.Name <- 2
.valid_name <- 3

2invalid <- 4  # 無效!不能以數字開頭
_invalid <- 5  # 無效!不能以下劃線開頭

變數的數據類型

正如盒子可以包含不同類型的項目一樣,R語言中的變數可以持有不同類型的數據。讓我們探討主要的數據類型:

數值

這用於存儲數字,包括小數。

my_number <- 42.5
print(my_number)

輸出:

[1] 42.5

整數

用於存儲整數。添加一個 L 來明確指定為整數。

my_integer <- 42L
print(my_integer)

輸出:

[1] 42

字符

用於存儲文本(字符串)。

my_text <- "I love R!"
print(my_text)

輸出:

[1] "I love R!"

邏輯

用於存儲 TRUE 或 FALSE 值。

is_r_fun <- TRUE
print(is_r_fun)

輸出:

[1] TRUE

檢查數據類型

要檢查變數持有的是什麼類型的數據,使用 class() 函數:

x <- 42
y <- "Hello"
z <- TRUE

print(class(x))
print(class(y))
print(class(z))

輸出:

[1] "numeric"
[1] "character"
[1] "logical"

查找變數

隨著你的代碼增長,你可能會想知道你已經創建了哪些變數。R語言提供了一些方便的函數來做到這一點:

ls() 函數

ls() 函數列出了當前環境中的所有變數:

a <- 1
b <- "two"
c <- TRUE

print(ls())

輸出:

[1] "a" "b" "c"

exists() 函數

要檢查特定變數是否存在,使用 exists() 函數:

print(exists("a"))
print(exists("d"))

輸出:

[1] TRUE
[1] FALSE

刪除變數

有時候,你可能會想要刪除不再需要的變數。這可以幫助釋放內存並保持你的工作空間整潔。

rm() 函數

rm() 函數用於刪除變數:

x <- 10
y <- 20

print(ls())
rm(x)
print(ls())

輸出:

[1] "x" "y"
[1] "y"

你可以一次刪除多個變數:

a <- 1
b <- 2
c <- 3

rm(a, b, c)
print(ls())

輸出:

character(0)

刪除所有變數

要刪除所有變數並從一個乾淨的狀態開始:

rm(list = ls())

請謹慎使用這個操作——這就像一次清空所有的盒子!

變數相關函數總結

這裡有一個方便的表格總結我們學到的關鍵函數:

函數 描述 示例
<-= 對變數賦值 x <- 10
class() 返回變數的數據類型 class(x)
ls() 列出當前環境中的所有變數 ls()
exists() 檢查變數是否存在 exists("x")
rm() 刪除指定的變數 rm(x)rm(x, y)
rm(list = ls()) 刪除所有變數 rm(list = ls())

這就是你們的!你剛剛踏出了進入R語言編程世界的第一步。記住,變數是你的代碼的基石,精通它們是成為熟練R語言編程者的關鍵。

在練習的過程中,你會發現使用變數變得習以為常。不要害怕嘗試——創建變數,給它們分配不同的數據類型,看看會發生什麼。你越多地玩轉它,你就會越感覺自如。

快樂編程,並記住——在R的世界裡,你現在是變數的主宰!

Credits: Image by storyset