環境命令
執行腳本命令 Ctrl+Enter
清空命令控制檯 Ctrl+L
列舉對象 ls()
刪除對象 rm(x)刪除所有變量 rm(list=ls())
幫助 help (x) / ?x
特殊字符指定的功能查詢(使用 ‘’ 或 “” 轉換成字符串)
help("[[")
簡介
- R是一種解釋型語言
- 區分大小寫
- 名稱不能以數字開始
- 註釋以#開頭
對象
R所創建、操作的實體是對象。對象可以是變量、數組、字符串、函數以及由這些元素組成的其它結構。在一個R的任務過程中,對象根據名稱被創建和存儲。
> objects()
用來顯示目前存儲在R中的對象的名字。
當前存儲的所有對象的組合被稱爲workspace。
類型屬性
typeof()
長度屬性length()
向量
R對已命名的數據結構進行操作。
最簡單的數據結構爲數字向量,即由一串有序數字組成的單個實體。
向量的類型:mode()
返回的結果
logical(邏輯型)
numeric(數值型)
integer (整數型)
double (實數型)
complex(複數型)
character(字符型)
raw (字節型)
factor(因子型)
integer
factor(因子型)
double
均返回numeric
(非考查範圍)因子型變量
區別於字符型變量,因子變量最大的特點在於可以由用戶根據某種特定的意義指定順序。
不做特定指定時,因子型變量的順序與字符型變量一樣,是按照先數字、後字母,數字從小到大,字母按先後順序進行排序。
R語言中使用levels
屬性來指定其特定的自定義順序。
轉換運算
強制轉換 | 檢驗對象的類型 |
---|---|
as.integer()相當於trunc() | is.integer() |
as.character() | is.character() |
as.double() | is.double() |
as.factor() | is.factor() |
as.numeric() | is.numeric() |
as.complex() |
賦值
- 直接創建
x=1
賦值後返回的是等號左側的被賦值變量,類似於一種引用
x<-1
1->x
值關聯,生成新變量,不返回被賦值變量
[示例]
x1<-1
x2<-1:5
x3<-TRUE/FALSE
x4<-"hello world"
- 使用函數c()的賦值過程示例:
創建一個名爲x,包含2個數字(10,11)的向量:
x<-c(10, 11)
assign("x",c(10, 11))`
c(10, 11)->x
函數c()的作用是將參數中的數值向量以及向量的值首尾相接組成一個新的向量。一個數字形成的向量可以被看作長度爲1。
如果一個表達式被當作一個完整的命令(例:1/x
)它的值將被打印到終端但不被儲存。
- 使用函數seq()生成等差序列向量
seq(from=1, to= , by=((to-from)/(length.out-1)), length.out=NULL, along.with=NULL, _ )
- from=1,首項默認爲1
- to= ,末項取值,默認爲1
- by,等差增量
以上均可取實數或浮點數- length.out=NULL,向量長度
- along.with=NULL,指明兩個向量長度相等,_處爲另一向量名字
- 使用函數rep()生成重複序列向量
rep( x, times=1, length.out=NA, each=1)
- x,重複的向量對象
- times=1,向量重複次數默認爲1
-length.out=NA,生成的向量長度默認不受限制- each=1,向量中每個元素重複次數默認爲1
rep(1:3, times=1, length.out=5, each=2)
1 1 2 2 3
運算符
數學運算符
+ - * / ^
%% 求餘
%/% 整除
%*% 矩陣乘
%o% 矩陣外積
比較運算符
> < <= >= == !=
邏輯運算符
! & | xor(異或)
作用於每一個元素
&& ||
只作用於第一個元素
取整運算
函數 | 功能 |
---|---|
floor() | 向下 |
ceiling() | 向上 |
trunc() | 向0取整 |
round(x,digits=0) | 四捨五入,默認保留0位小數 |
signif(x,digits=4) | 四捨五入,默認保留4位有效數字 |
sign() | 取正負符號 |
x>0,sign(x)=1
x=0,sign(x)=0;
x<0, sign(x)=-1
運算函數
max() | 返回最大值 |
min() | 返回最小值 |
sum() | 返回總和 |
mean() | 返回平均數 |
median() | 返回中位數 |
var() | 返回方差 |
sd() | 返回標準差 |
sort() | 返回值排序後的數值向量 |
rank() | 返回向量中對應元素排序 |
order() | 對應排序元素在向量中的位置 |
字符串函數
函數 | 意義 |
---|---|
nchar( )或length( ) | 計算字符串長度 |
toupper( ) | 將字符串統一轉換爲大寫 |
tolower( ) | 將字符串統一轉換爲小寫 |
casefold( , upper=T/FALSE) | 根據參數轉換大小寫,upper=T全是大寫,F反之 |
sprintf("%f", ) | 字符串轉換 |
substr( , start=, stop=)或只需設定first參數的substring( ) | 截取字符串 |
strtrim( , width= ) | 從開頭截取指定width的子字符串 |
chartr(old="", new="", ) | 將原字符串中指定字符進行替換,要求兩者長度一致 |
strsplit( , split="", fixed=F) | 根據指定分割參數拆分字符串,fixed=T時需要精確匹配,得到list類型 |
[eg]:strsplit("123abcabc",split="a") |
"123" "bc" "bc" |
paste( , sep="", collapse=NULL) | 字符串連接函數,sep參數負責兩組字符型向量間的分隔符,collapse參數負責一組字符串內部的連接符 |
[eg]:paste(x, y, sep="-", collapse="/") |
"a-1/b-2/c-3" |
paste0() | 默認分隔符爲空 |
[eg]:paste0("a", 1:3, sep="-",collapse="/") |
"a-1/a-2/a-3" |
word(string, start=1L,end=start, sep=fixed(" ")) | 用於從語句中提取單詞/字符串 |