說明
在前一篇中,我們介紹了 R 語言和 R Studio 的安裝,並簡單的介紹了一個示例,接下來讓我們由淺入深的學習 R 語言的相關知識。
本篇將主要介紹 R 語言的基本操作、變量和幾種基本數據類型,好對 R 語言的使用方法有一個基本的概念。通過本篇的學習,你將了解到:
R語言有哪些基本操作- 什么是變量,以及如何給變量賦值
R語言有哪些基本數據類型,如何確定變量的數據類型
R 語言的基本操作
R 語言的默認提示符是 > ,它表示正在等待輸入命令,每次輸入命令后敲擊回車即可執行當前命令。

R 語言支持的基本操作主要有加、減、乘、除、取余和冪運算,對應的運算符分別為:+、-、*、/、%%、^。
加減乘除就不必多說了,但有一點需要提一下,跟許多語言不一樣的是,R 語言中,除法運算得到的不是整數部分,而是包含小數部分的結果。
> 9/2
[1] 4.5
> 9/4
[1] 2.25
> 11/3
[1] 3.666667
取余運算的含義是計算整除后的余數:
> 9 %% 2
[1] 1
> 9 %% 4
[1] 1
> 9 %% 3
[1] 0
> 11 % 4
錯誤: unexpected input in "11 % 4"
在使用時需要注意的是有兩個百分號組成,輸入錯誤則會得上上述錯誤提示。
冪運算跟數學中的冪運算含義一致,2^3 代表的是2的3次冪:
> 2 ^ 3
[1] 8
> 3 ^ 2
[1] 9
> 2 ^ 10
[1] 1024
> 2 ^ 100
[1] 1.267651e+30
R 語言中的變量
在使用 R 語言時,我們通常很難一步到位得到最終的結果,需要進行一些復雜的計算。這時我們便需要使用變量來存放計算得到的中間結果。
R 語言中,可以將變量想象成一個盒子,我們可以將任何數據暫存到這個盒子里,但同一時刻,這個盒子只能保存一個數據,如果被多次賦值,則只會保存最后一次放入的數據。
R 語言中的賦值符號是 ->,雖然也可以使用 = 進行賦值,但強烈建議不要這樣做,這樣不僅顯得不專業,而且在一些情況下會出現問題。
> x <- 3
> x <- 4
> x <- 9
> x
[1] 9
R 語言中的變量不需要事先聲明,直接使用即可。如果使用了一個之前沒有出現過的變量,則會創建一個新的變量。R 語言中變量是區分大小寫的,x 與 X 是兩個不同的變量。
> X
錯誤: 找不到對象'X'
> X <- 1
> X <- 3
> X
[1] 3
> x
[1] 9
變量都是有名字的,比如x、y、stu_score,變量的命名必須滿足以下規則:
- 只能使用字母(區分大小寫)、數字、“_”(下划線)、“.”(英文句號),不能有中文、空格和其它特殊字符存在
- 不能以數字、下划線開頭,開頭必須是英文字母或者點
- 可以以點號開頭,但點號后面的符號不能是數字
在 R 語言中,如果非要搞一些騷操作,用一些奇怪的變量名,也不是不可以,需要用反引號來包裹。
> `* 90` <- 10
> `* 90`
[1] 10
> `變量` <- 20
> `變量`
[1] 20
當然,不建議這樣做,變量取名最好簡單且有意義,這樣可以減少與其他人的溝通成本以及日后的理解成本。
R 語言中的基本數據類型
R 語言中主要數據類型有:向量、列表、矩陣、因子、數據框、數組。這些會在后面的文章中進行介紹,本篇只介紹基本的幾種數據類型。
1. 邏輯型(logical)
邏輯型數據有兩種可能的值,TRUE 或 FALSE 。
> v <- TRUE
> class(v)
[1] "logical"
> y <- FALSE
> class(v)
[1] "logical"
> y <- false
錯誤: 找不到對象'false'
class 函數可以獲取變量的類型信息,可以看到,變量 v 和 y 都是 logical 類型。需要注意的是 TRUE 和 FALSE 必須全部大寫,否則會出現上面的錯誤提示。
2. 數值型(numeric)
R 語言中數字的默認類型為數值型,在運算時需要注意其精度問題,當整數部分大於等於7位時,將舍棄小數部分,當整數部分小於7位時,與小數部分一起最多保留7位數字。
> i <- 10
> class(i)
[1] "numeric"
> j <- 11.1
> class(j)
[1] "numeric"
> k <- 1.1234567890
> class(k)
[1] "numeric"
> k
[1] 1.123457
> k <- 123456789.123456789
> k
[1] 123456789
> k <- 1234567.123456789
> k
[1] 1234567
> k <- 123456.123456789
> k
[1] 123456.1
3. 整數型(integer)
R 語言中,整數型需要使用數字+L來表示,如:2L、11L、-10L。
> i <- 1L
> class(i)
[1] "integer"
> j <- 22L
> class(j)
[1] "integer"
> k <- -10L
> class(k)
[1] "integer"
4. 字符型(character)
R 語言中字符型即字符串類型,通常為用單引號或雙引號包圍的字符串。
> name <- "Frank"
> class(name)
[1] "character"
> doc_name <- "study.mp4"
> class(doc_name)
[1] "character"
5. 復數型(Complex)
R 語言是支持復數計算的,復數也是 R 語言的基本類型之一。
> c1 <- 3 + 2i
> class(c1)
[1] "complex"
> c2 <-6 - 3i
> class(c2)
[1] "complex"
6. 原型(Raw)
R 語言還有一種不太常見的基本數據類型,叫原型(raw)。raw 類型是直接使用其二進制內容來進行保存和使用的類型。
> v <- charToRaw("Hello")
> class(v)
[1] "raw"
> v
[1] 48 65 6c 6c 6f
如何判斷變量的類型
當我們拿到一個變量之后,如何判斷它的數據類型呢?上面的例子中,其實已經有所提及,使用 class() 函數可以簡單方便的查看變量的類型,但還有更簡單的方式,為了判斷某個變量x 保存的基本類型,可以用 is.xxx() 類函數,如is.integer(x), is.double(x), is.numeric(x), is.logical(x), is.character(x), is.complex(x), is.raw(x)。 其中 is.numeric(x) 對 integer 和 double 內容都返回真值。
> is.character(s)
[1] TRUE
> is.character(v)
[1] FALSE
> is.raw(v)
[1] TRUE
> is.integer(i)
[1] TRUE
> is.numeric(i)
[1] TRUE
> is.complex(c1)
[1] TRUE
> is.integer(c1)
[1] FALSE
小結
至此,本篇就告一段落了,相信通過本篇的學習,對 R 語言的基本數據類型能有一個整體的掌握,別忘了回顧一下之前的問題,這些你都了解了嗎:
R語言有哪些基本操作- 什么是變量,以及如何給變量賦值
R語言有哪些基本數據類型,如何確定變量的數據類型
之后的篇章中,將會繼續介紹 R 語言的各方各面,讓 R 語言能為我們的數據分析提供更強力的支持!

