基于學習總結(jié)和網(wǎng)上收集!匯總供以后查看學習郎任!
運算符
數(shù)學運算:
+秧耗,-,*舶治,/分井,^,%%霉猛。(加尺锚,減,乘惜浅,除嚣鄙,乘方哆致,求余。)
比較運算:
>,<榨惠,>=兜蠕,<=注整,==串前,!=。
(大于轩猩,小于卷扮,大于等于,小于等于界轩,等于画饥,不等于。)
邏輯運算:
&浊猾,|抖甘,!。(與葫慎,或衔彻,非。)
初始基本操作
獲取工作目錄偷办。
> getwd()
設定工作目錄
setwd("")
尋求幫助
help(com)
?com
??con
查看實例
example(com)
查看變量格式
args()
列出已安裝的包
library()
載入包
library(AER)
require(AER)
獲取包的信息
library(help = ggplot2)
去除載入的包ggplot2
detach(package:ggplot2)
列出已載入的包
search()
列出已載入的包中的所有數(shù)據(jù)集
data()
列出已安裝的包中的所有數(shù)據(jù)集
data(package = .packages(all.available = TRUE))
列出包ggplot2里的所有數(shù)據(jù)集
try(data(package = "ggplot2") )
獲取數(shù)據(jù)集的信息
help(iris)
貼上數(shù)據(jù)集iris艰额,其作用是可以直接對數(shù)據(jù)集里的變量進行操作。
attach(Affairs)
上述操作的逆操作
detach(Affairs)
一般的操作
列出所有對象
objects()
ls()
查看對象x的模式:空椒涯,數(shù)值柄沮,字符,邏輯,復數(shù)祖搓,列表狱意,函數(shù)
(NULL,numeric拯欧,character详囤,logical,complex镐作,list藏姐,function)。
mode(x)
查看對象x的類型:除了mode里列出的幾種類型外该贾,還有整數(shù)羔杨,矩陣,因子靶庙,陣列问畅,數(shù)據(jù)框娃属,時間序列(integer六荒,matrix,factor矾端,array掏击,data frame,ts)等其他類型秩铆。mode主要用于區(qū)別數(shù)據(jù)存放的方式砚亭,而class是一種更細微的分類方式,比如矩陣殴玛,就是一種更“有序”的數(shù)據(jù)存放方式捅膘。此命令比mode常用。
class(x)
把對象x轉(zhuǎn)為矩陣型
as.matrix(x)
把對象x轉(zhuǎn)為數(shù)值型
as.numeric(x)
查看對象x的結(jié)構滚粟,str是structure的縮寫
str(x)
移除對象x
rm(x)
移除所有對象
rm(list=ls(all=TRUE))
rm(list=ls())
與向量有關的操作
生成向量
x = c(1,2,4)
#生成元素依次為"a","b","cd"的字符向量x
x = c("a","b","cd")
生成"a b cd"的字符x
x = paste("a","b","cd")
向量x的第a到b個元素
x[a:b]
剔除向量x第i個元素所得的向量
x[-i]
向量x的長度
length(x)
生成以一個n維數(shù)值型向量x寻仗,第一個元素為a,最后一個元素為b凡壤,中間元素依次等距遞增署尤。(假設a<b)
x = seq(a, b, length = n)
生成一個數(shù)值型向量x,第一個元素為a亚侠,其后元素依次加c曹体,直到最后一個元素加c大于b。(假設a<b)
x = seq(a, b, c)
從1開始生成一個遞增或遞減數(shù)值型向量x硝烂,最后一個元素絕對值為小于等于|a|的最大整數(shù)箕别。
x = seq(a)
生成一個從a遞增(減)到b的數(shù)值型向量x。(a和b都是整數(shù))
x = a:b
對向量v進行n次復制生成新的向量x
x = rep(v, n)
依次對向量v的每個元素復制n此生成新的向量x
x = rep(v, each = n)
生成一個向量x,其中每個元素是v對應元素的最近整數(shù)
x = round(v)
排序
order(x)
獲得向量x每個元素大小位置
rank(x)
對向量x從小到大進行排序串稀。降序:sort(x, decreasing = TRUE)啥酱。
sort(x)
根據(jù)因子f對向量x分類執(zhí)行函數(shù)g
tapply(x,f,g)
向量x按因子f分類
split(x,f)
返回向量x的差分向量
diff(x)
返回向量x的累加向量
cumsum(x)
與矩陣有關的基本操作
生成m行n列的0矩陣
M = matrix(0,c(m,n))
按行合并矩陣X和Y形成新矩陣M。(X和Y列數(shù)需相同)
> M = rbind(X,Y)
按列合并矩陣X和Y形成新矩陣M厨诸。(X和Y行數(shù)需相同)
> M = cbind(X,Y)
矩陣M的列名
> colnames(M)
矩陣M的行名
> rownames(M)
矩陣M的行數(shù)
> nrow(M)
矩陣M的列數(shù)
> ncol(M)
矩陣M的對角線元素形成的向量
> diag(M)
生成以向量x為對角線元素镶殷,其他位置元素為0的矩陣M
> M = diag(x)
矩陣M的維度
> dim(M)
矩陣M第i行。(數(shù)值型)
> M[i,]
矩陣M第i行微酬。(矩陣型)
> M[i,,drop = FALSE]
刪除第i行
> M = M[-i,]
矩陣M第j列
> M[,j]
矩陣M第i行j列元素
> M[i,j]
矩陣M的轉(zhuǎn)置绘趋。若M為數(shù)值型向量,則t(M)為矩陣型行向量
> t(M)
矩陣X乘矩陣Y颗管。若Y是數(shù)值型的向量陷遮,R會自動判斷其為行向量還是列向量。若X與Y為維度匹配的數(shù)值型向量垦江,則返回的是矩陣型向量的內(nèi)積
> X%*%Y
數(shù)值型向量x與y的外積(矩陣型)
> x%o%y
矩陣X與矩陣Y的Hadamard乘積帽馋。加、減比吭、除绽族、求余的規(guī)則和乘相同,即相同位置的元素進行運算
> X*Y
求矩陣M的特征值和特征向量
> eigen(M)$val
> eigen(M)$vec
矩陣M求逆
> solve(M)
求解線性方程Ax=b
> solve(A,b)
對矩陣M的行(dimcode=1)或列(dimcode=2)依次進行函數(shù)f操作衩藤,f的變量(arguments)方正fargs里
> apply(M, dimcode, f, fargs)
與列表有關的基本操作
建立列表L
> L = list(a = , b = , c = ,...)
返回列表L里的對象a
> L$a
> L[[a]]
去除列表L里的對象a
> L$a = NULL
列出列表L里的對象名
> names(L)
去掉列表L里的對象名
> unname(L)
list apply吧慢。功能與apply類似(參考上面的apply),用于列表型數(shù)據(jù)
> lapply(...)
simplified apply赏表。功能與lapply類似检诗,區(qū)別在于函數(shù)結(jié)果的類型不是列表(list)
> sapply(...)
與數(shù)據(jù)框有關的基本操作
數(shù)據(jù)框是一種特殊的列表,所以對列表適用的函數(shù)往往對數(shù)據(jù)框也適用瓢剿。此外逢慌,數(shù)據(jù)框也有矩陣型數(shù)據(jù)的特征,所以一些適用于矩陣型數(shù)據(jù)的函數(shù)间狂,不如rbind攻泼,cbind,apply等也可以作用在數(shù)據(jù)框上前标。
創(chuàng)建數(shù)據(jù)框Data
> Data = data.frame(...)
編輯數(shù)據(jù)框Data
> fix(Data)
顯示數(shù)據(jù)框Data的前幾行
> head(Data)
列出數(shù)據(jù)框Data的組成部分
> attribute(Data)
顯示數(shù)據(jù)框Data的變量名
> names(Data)
顯示數(shù)據(jù)框Data的行名
> row.names(Data)
數(shù)據(jù)框Data中名為name1的變量
> Data$name1
數(shù)據(jù)框Data中第i個變量形成的數(shù)據(jù)框
> Data[i]
合并數(shù)據(jù)框D1和D2坠韩,需要D1和D2中有至少一個相同的變量
> merge(D1,D2)
與邏輯型數(shù)據(jù)有關的基本操作
判斷是否對象x是數(shù)據(jù)框
> is.data.frame(x)
判斷是否對象x的每個元素都大于a
> all(x>a)
判斷對象x的元素中是否存在一個大于a
> any(x>a)
判斷x的每個元素是否大于y的每個元素
> x>y
向量x中大于a的元素組成的新向量
> x[x>a]
向量x中大于a的元素組成的新向量。與上面例子的區(qū)別在于若向量元素里有NA炼列,上面的例子會保留在結(jié)果中只搁,而subset命令會剔除掉
> subset(x, x>a)
返回向量中大于a的元素的位置
> which(x, x>a)
生成一個與b(邏輯向量)維度相同的數(shù)值向量,若b[i]為TRUE俭尖,則x[i]為u氢惋,反之為v
x = ifelse(b, u, v)