1. 程式人生 > >R語言--基礎(一)

R語言--基礎(一)

1. 概述

R語言是用於統計分析,圖形表示和報告的程式語言和軟體環境。 R語言由Ross Ihaka和Robert Gentleman在紐西蘭奧克蘭大學建立,目前由R語言開發核心團隊開發。
R語言在GNU通用公共許可證下免費提供,併為各種作業系統(如Linux,Windows和Mac)提供預編譯的二進位制版本。
這種程式語言被命名為R語言,基於兩個R語言作者的名字的第一個字母(Robert Gentleman和Ross Ihaka),並且部分是貝爾實驗室語言S的名稱。

2. 下載

R語言官網

3. 安裝
  • 雙擊安裝包,出現如圖1所示介面,點選確定


    3110861-98cdc501e78e71d1.png
    圖1.png
  • 點選下一步


    3110861-9c8f64761f743130.png 圖2.png
  • 選擇安裝路徑,點選下一步


    3110861-eb0f8a4b3ab5789f.png 圖3.png
  • 勾選所要安裝的元件,32和64根據使用者自己的電腦去選擇,下一步


    3110861-2520b6d9e595d5b5.png
    圖4.png
  • 選擇啟動方式,此處預設選擇即可,下一步


    3110861-9ab01b8997e82cd6.png 圖5.png
  • 選擇開始選單資料夾,此處預設即可,下一步


    3110861-91bd285893e1eb64.png 圖6.png
  • 選擇附加任務,預設即可,下一步


    3110861-61b71df92414d60a.png
    圖7.png
  • 正在安裝


    3110861-d36462253d458252.png 圖8.png
  • 安裝完成


    3110861-f46bb21dc37f09e0.png 圖9.png
  • 設定環境變數
    在計算機圖示上右鍵選擇屬性-> 選擇左側的高階環境變數-> 點選環境變數-> 在系統變數中找到path,將R安裝包所安裝的路徑下的bin資料夾新增至path環境變數最後,一定要注意';'(分號)
D:\Program Files\R\R-3.5.1\bin
4. 測試安裝
  • 命令列
    開啟命令提示符(win+R鍵,輸入cmd),然後輸入R


    3110861-a179b0913b53f16c.png 圖10.png
  • 指令碼檔案
    I. 建立一個字尾名為R的檔案


    3110861-b82225951fefa6c5.png 圖11.png

    II. 執行


    3110861-742345fef918844d.png 圖12.png
5. 列印
  • 列印語句
print("mazaiting")
3110861-57d6336384b5a053.png 圖13.png
  • 定義字串輸出
# 註釋
myString <- "Hello World!"
print(myString)
3110861-24909e0cfa816872.png 圖14.png
  • R語言不支援多行註釋,但可以這樣使用


    3110861-4d268b7d89bdb488.png 圖15.png
6. 資料型別
  • 基本資料型別
資料型別
Logical(邏輯型) TRUE, FALSE
Numeric(數字) 12.3,5,999
Integer(整型) 2L,34L,0L
Complex(複合型) 3 + 2i
Character(字元) 'a' , '"good", "TRUE", '23.4'
Raw(原型) "Hello" 被儲存為 48 65 6c 6c 6f

示例:

# 邏輯形
v <- TRUE
print(class(v))

# 數字
v <- 23.5
print(class(v))

# 整型
v <- 2L
print(class(v))

# 複合型
v <- 2+5i
print(class(v))

# 字元
v <- "TRUE"
print(class(v))

# 原型
v <- charToRaw("Hello")
print(class(v))

列印結果:


3110861-456464f9518d422f.png 圖16.png
  • Vectors 向量
# 向量
apple <- c('red', 'green', 'yellow')
print(apple)
print(class(apple))

列印結果:


3110861-16533185b53c244a.png 圖17.png
  • Lists 列表
# 列表
list1 <- list(c(2,5,3),21.3,sin)
print(list1)

列印結果:


3110861-4bdbaabc3ac0cdfd.png 圖18.png
  • Matrices 矩陣
# 矩陣
M = matrix(c('a','a','b','c','b','a'), nrow=2,ncol=3,byrow=TRUE)
print(M)

列印結果:


3110861-4d20ad6bb81e2400.png 圖19.png
  • Arrays 陣列
# 陣列
a <- array(c('green','yellow'), dim=c(3,3,2))
print(a)

列印結果:


3110861-d4b74bca48c59a66.png 圖20.png
  • Factors 因子
# 因子
apple_colors <- c('green','green','yellow','red','red','red','green')
factor_apple <- factor(apple_colors)
print(factor_apple)
print(nlevels(factor_apple))

列印結果:


3110861-46e2317762ec04fe.png 圖21.png
  • Data Frames 資料幀
# 資料幀
BMI <-  data.frame(
   gender = c("Male", "Male","Female"), 
   height = c(152, 171.5, 165), 
   weight = c(81,93, 78),
   Age = c(42,38,26)
)
print(BMI)

列印結果:


3110861-cc8fe4aeceac1eb2.png 圖22.png
7. 變數
  • 命名
    有效的變數名稱由字母,數字和點或下劃線字元組成。 變數名以字母或不以數字後跟的點開頭。
  • 變數賦值
    可以使用向左,向右和等於運算子來為變數分配值。
  • 列印
    可以使用print()或cat()函式列印變數的值。 cat()函式將多個專案組合成連續列印輸出。

示例:

var.1 = c(0,1,2,3)
var.2 <- c("learn", "R")
c(TRUE,1) -> var.3

print(var.1)
cat("var.1 is ", var.1,"
")
cat("var.2 is ", var.2,"
")
cat("var.3 is ", var.3,"
")

列印結果:


3110861-4c635e8d5fc87aca.png 圖23.png
  • 查詢變數
print(ls())

列印結果:


3110861-534e8a710e54ffba.png 圖24.png
  • 刪除變數
rm(var.3)
8. 運算子
  • 算術運算子
運算子 描述
+ 兩個向量相加
- 兩個向量相減
* 兩個向量相乘
/ 將第一個向量與第二個向量相除
%% 兩個向量求餘
%/% 兩個向量相除求商
^ 將第二向量作為第一向量的指數

示例:

# 向量相加
v = c(2, 5.5, 6)
t = c(8, 3, 4)
print(v + t)

# 向量相減
print(v - t)

# 向量相乘
print(v * t)

# 向量相除
print(v / t)

# 向量求餘
print(v %% t)

# 向量相除求商
print(v %/% t)

# 將第二向量作為第一向量的指數
print(v ^ t)

列印結果:


3110861-91edbf94e3571469.png 圖25.png
  • 關係運算符
運算子 描述
> 檢查第一向量的每個元素是否大於第二向量的相應元素。
< 檢查第一個向量的每個元素是否小於第二個向量的相應元素。
== 檢查第一個向量的每個元素是否等於第二個向量的相應元素。
<= 檢查第一向量的每個元素是否小於或等於第二向量的相應元素。
> = 檢查第一向量的每個元素是否大於或等於第二向量的相應元素。
!= 檢查第一個向量的每個元素是否不等於第二個向量的相應元素。

示例:

# 檢查第一個向量的每個元素是否大於第二個向量的相應元素
v = c(2, 5.5, 6, 9)
t = c(8, 2.5, 14, 9)
print(v > t)

# 檢查第一個向量的每個元素是否小於第二個向量的相應元素
print(v < t)

# 檢查第一個向量的每個元素是否等於第二個向量的相應元素
print(v == t)

# 檢查第一個向量的每個元素是否小於或等於第二向量的相應元素
print(v <= t)

# 檢查第一向量的每個元素是否大於或等於第二向量的相應元素
print(v >= t)

# 檢查第一個向量的每個元素是否不等於第二個向量的相應的元素
print(v != t)

列印結果:


3110861-4c92cb6c93dd2d92.png 圖26.png
  • 邏輯運算子
運算子 描述
& 它被稱為元素邏輯AND運算子。 它將第一向量的每個元素與第二向量的相應元素組合,並且如果兩個元素都為TRUE,則給出輸出TRUE。
| 它被稱為元素邏輯或運算子。 它將第一向量的每個元素與第二向量的相應元素組合,並且如果元素為真,則給出輸出TRUE。
! 它被稱為邏輯非運算子。 取得向量的每個元素,並給出相反的邏輯值。

示例:

# 邏輯與運算子
v = c(3, 1, TRUE, 2+3i)
t = c(4, 1, FALSE, 2+3i)
print(v & t)

# 邏輯或運算子
print(v | t)

# 邏輯非運算子
print(!v)

列印結果:


3110861-4cfa09673e86d697.png 圖27.png
  • 賦值運算子
運算子 描述
<− or = or <<− 稱為左分配
-> or ->> 稱為右分配
  • 其他運算子
運算子 描述
: 冒號運算子。 它為向量按順序建立一系列數字。
%in% 此運算子用於標識元素是否屬於向量。
%*% 此運算子用於將矩陣與其轉置相乘。

示例:

# 冒號運算子: 它為向量按順序建立一系列數字
v = 2:8
print(v)

# 標識運算子是否屬於向量
v1 = 8
v2 = 12
t = 1:10
print(v1 %in% t)
print(v2 %in% t)

# 將矩陣與其轉置相乘
M = matrix(c(2, 6, 5, 1, 10, 4), nrow=2,ncol=3,byrow=TRUE)
t = M %*% t(M)
print(t)

列印結果:


3110861-8772e0af18144d19.png 圖28.png

程式碼下載