R語言--基礎(一)
阿新 • • 發佈:2019-01-04
1. 概述
R語言是用於統計分析,圖形表示和報告的程式語言和軟體環境。 R語言由Ross Ihaka和Robert Gentleman在紐西蘭奧克蘭大學建立,目前由R語言開發核心團隊開發。
R語言在GNU通用公共許可證下免費提供,併為各種作業系統(如Linux,Windows和Mac)提供預編譯的二進位制版本。
這種程式語言被命名為R語言,基於兩個R語言作者的名字的第一個字母(Robert Gentleman和Ross Ihaka),並且部分是貝爾實驗室語言S的名稱。
2. 下載
3. 安裝
-
雙擊安裝包,出現如圖1所示介面,點選確定
-
點選下一步
圖2.png -
選擇安裝路徑,點選下一步
圖3.png -
勾選所要安裝的元件,32和64根據使用者自己的電腦去選擇,下一步
-
選擇啟動方式,此處預設選擇即可,下一步
圖5.png -
選擇開始選單資料夾,此處預設即可,下一步
圖6.png -
選擇附加任務,預設即可,下一步
-
正在安裝
圖8.png -
安裝完成
圖9.png - 設定環境變數
在計算機圖示上右鍵選擇屬性-> 選擇左側的高階環境變數-> 點選環境變數-> 在系統變數中找到path,將R安裝包所安裝的路徑下的bin資料夾新增至path環境變數最後,一定要注意';'(分號)
D:\Program Files\R\R-3.5.1\bin
4. 測試安裝
-
命令列
開啟命令提示符(win+R鍵,輸入cmd),然後輸入R
圖10.png -
指令碼檔案
I. 建立一個字尾名為R的檔案
圖11.pngII. 執行
圖12.png
5. 列印
- 列印語句
print("mazaiting")
圖13.png
- 定義字串輸出
# 註釋
myString <- "Hello World!"
print(myString)
圖14.png
-
R語言不支援多行註釋,但可以這樣使用
圖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))
列印結果:
圖16.png
- Vectors 向量
# 向量
apple <- c('red', 'green', 'yellow')
print(apple)
print(class(apple))
列印結果:
圖17.png
- Lists 列表
# 列表
list1 <- list(c(2,5,3),21.3,sin)
print(list1)
列印結果:
圖18.png
- Matrices 矩陣
# 矩陣
M = matrix(c('a','a','b','c','b','a'), nrow=2,ncol=3,byrow=TRUE)
print(M)
列印結果:
圖19.png
- Arrays 陣列
# 陣列
a <- array(c('green','yellow'), dim=c(3,3,2))
print(a)
列印結果:
圖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))
列印結果:
圖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)
列印結果:
圖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,"
")
列印結果:
圖23.png
- 查詢變數
print(ls())
列印結果:
圖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)
列印結果:
圖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)
列印結果:
圖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)
列印結果:
圖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)
列印結果:
圖28.png