R基礎語法
這裡我們可以參照下面的例子,了解常用的語法規則
基本運算
# 加法
5 + 3
# 結果:8
# 減法
10 - 4
# 結果:6
# 乘法
6 * 7
# 結果:42
# 除法
20 / 4
# 結果:5
# 乘方
2^3
# 結果:8
# 取餘數
10 %% 3
# 結果:1
# 取整數商
10 %/% 3
# 結果:3
數學函數
# 絕對值
abs(-5)
# 結果:5
# 指數函數
exp(1)
# 結果:2.7182818
# 自然對數
log(2.7182818)
# 結果:1
# 對數,指定底數
log(100, base = 10)
# 結果:2
# 平方根
sqrt(16)
# 結果:4
# 三角函數(如正弦、餘弦、正切)
sin(pi / 2)
# 結果:1
cos(pi)
# 結果:-1
tan(pi / 4)
# 結果:1
比較運算
# 相等
5 == 5
# 結果:TRUE
# 不相等
5 != 3
# 結果:TRUE
# 大於
7 > 5
# 結果:TRUE
# 小於
3 < 7
# 結果:TRUE
# 大於等於
5 >= 5
# 結果:TRUE
# 小於等於
3 <= 7
# 結果:TRUE
邏輯運算
# AND 運算
TRUE & FALSE
# 結果:FALSE
# OR 運算
TRUE | FALSE
# 結果:TRUE
# NOT 運算
!TRUE
# 結果:FALSE
當然我們可以結合c函數,對一個數字組合做運算
結合 c()
函數進行加減乘除運算
# 定義向量
vec1 = c(1, 2, 3, 4)
vec2 = c(4, 3, 2, 1)
# 向量加法
result_add = vec1 + vec2
# 結果:5 5 5 5
# 向量減法
result_subtract = vec1 - vec2
# 結果:-3 -1 1 3
# 向量乘法
result_multiply = vec1 * vec2
# 結果:4 6 6 4
# 向量除法
result_divide = vec1 / vec2
# 結果:0.25 0.6666667 1.5 4
結合 c()
函數進行取餘數運算
# 定義向量
vec3 = c(10, 15, 20, 25)
# 向量取餘數
result_mod = vec3 %% 4
# 結果:2 3 0 1
結合 c()
函數進行取整數除法運算
# 定義向量
vec4 = c(10, 15, 20, 25)
# 向量取整數商
result_int_div = vec4 %/% 4
# 結果:2 3 5 6
結合 c()
函數進行數學函數運算
# 定義向量
vec5 = c(1, 2, 3, 4)
# 絕對值
result_abs = abs(c(-1, -2, -3, -4))
# 結果:1 2 3 4
# 指數函數
result_exp = exp(vec5)
# 結果:2.7182818 7.3890561 20.085537 54.598150
# 自然對數
result_log = log(c(2.7182818, 7.3890561, 20.085537, 54.598150))
# 結果:1 2 3 4
# 平方根
result_sqrt = sqrt(c(1, 4, 9, 16))
# 結果:1 2 3 4
物件的索引
向量的索引
# 定義一個向量
vec = c(10, 20, 30, 40, 50)
# 訪問向量的第一個元素
first_element = vec[1]
# 結果:10
# 訪問向量的第三個元素
third_element = vec[3]
# 結果:30
# 訪問向量的多個元素(例如,第2和第4個元素)
subset_elements = vec[c(2, 4)]
# 結果:20 40
# 訪問向量的一個範圍內的元素(例如,第2到第4個元素)
range_elements = vec[2:4]
# 結果:20 30 40
# 排除向量中的特定元素(例如,排除第3個元素)
exclude_element = vec[-3]
# 結果:10 20 40 50
矩陣的索引
# 定義一個矩陣
mat = matrix(1:9, nrow = 3, ncol = 3)
# 訪問矩陣的元素(例如,第2行第3列的元素)
element = mat[2, 3]
# 結果:6
# 訪問矩陣的整行(例如,第1行)
row = mat[1, ]
# 結果:1 4 7
# 訪問矩陣的整列(例如,第2列)
column = mat[, 2]
# 結果:2 5 8
# 訪問矩陣的子矩陣(例如,第1和第2行,第2和第3列的元素)
submatrix = mat[1:2, 2:3]
# 結果:
# [,1] [,2]
# [1,] 2 3
# [2,] 5 6
數據框的索引
# 定義一個數據框
df = data.frame(
name = c("Alice", "Bob", "Charlie"),
age = c(25, 30, 35),
height = c(165, 170, 175)
)
# 訪問數據框的某個元素(例如,第2行第3列的元素)
element = df[2, 3]
# 結果:170
# 訪問數據框的某行(例如,第1行)
row = df[1, ]
# 結果:
# name age height
# 1 Alice 25 165
# 訪問數據框的某列(例如,age列)
column = df[, "age"]
# 結果:25 30 35
# 訪問數據框的多個列(例如,name和height列)
multiple_columns = df[, c("name", "height")]
# 結果:
# name height
# 1 Alice 165
# 2 Bob 170
# 3 Charlie 175
# 訪問數據框的多個元素(例如,第1和第3行的age和height列)
subset_df = df[c(1, 3), c("age", "height")]
# 結果:
# age height
# 1 25 165
# 3 35 175
物件種類
在R語言中,常見的物件類型包括數值型、字符型、邏輯型、向量、因子、矩陣、數據框和列表等。這些物件可以使用一系列函數進行轉換,例如 as.numeric()
、as.character()
等等。下面是這些物件類型及其相關函數的詳細介紹:
物件類型 | 描述 | 常見轉換函數 | 示例 |
---|---|---|---|
數值型 | 包含實數或整數 | as.numeric() , as.integer() | as.numeric("123") |
字符型 | 包含字符或字符串 | as.character() | as.character(123) |
邏輯型 | 包含布爾值 (TRUE 或 FALSE ) | as.logical() | as.logical(1) |
向量 | 同類型元素的集合 | as.vector() | as.vector(c(1, 2, 3)) |
因子 | 類別型數據,通常用於分類變量 | as.factor() | as.factor(c("a", "b", "a")) |
矩陣 | 二維數據結構,元素同類型 | as.matrix() | as.matrix(data.frame(x=1:3)) |
數據框 | 表格數據,列可以是不同類型的數據 | as.data.frame() | as.data.frame(matrix(1:4, 2, 2)) |
列表 | 各類型元素的集合,元素可以是不同類型 | as.list() | as.list(c(1, "a", TRUE)) |
轉換函數的詳細示例
- 數值型
num_char = "123"
num = as.numeric(num_char)
# 結果:123
- 字符型
char_num = 123
char = as.character(char_num)
# 結果:"123"
- 邏輯型
logical_num = 1
logical = as.logical(logical_num)
# 結果:TRUE
- 向量
vec = as.vector(c(1, 2, 3))
# 結果:1 2 3
- 因子
fac = as.factor(c("a", "b", "a"))
# 結果:因子:1 2 1
- 矩陣
mat = as.matrix(data.frame(x = 1:3, y = 4:6))
# 結果:
# x y
# [1,] 1 4
# [2,] 2 5
# [3,] 3 6
- 數據框
df = as.data.frame(matrix(1:4, nrow = 2, ncol = 2))
# 結果:
# V1 V2
# 1 1 3
# 2 2 4
- 列表
lst = as.list(c(1, "a", TRUE))
# 結果:
# [[1]]
# [1] 1
#
# [[2]]
# [1] "a"
#
# [[3]]
# [1] TRUE
這些示例展示了R中常見物件類型及其轉換函數的使用方法。