1.清屏 Ctrl + L 2.退出 q() 3.設置工作空間 getwd() setwd('D:\\Program Files\\RStudio\\workspace') 4.顯檔當前工作目錄下的文件列表 list.files() choose.dir() dir("D:\\Program Fil... ...
1.清屏 Ctrl + L 2.退出 q() 3.設置工作空間 getwd() setwd('D:\\Program Files\\RStudio\\workspace') 4.顯檔當前工作目錄下的文件列表 list.files() choose.dir() dir("D:\\Program Files\\RStudio\\workspace", full.names=T, all.files=T, recursive=T) 5.安裝包 install.packages("gstat") remove.packages("gstat") # 刪除 update.packages() # 更 新 所 有 已 經 安 裝 的 包 availabe.packages() # 可 用 的 更 新央 download.packages(pkgs,...) # 下 載 指 定 的 包 packageStatus() # 返回可更新信息 6.載入包 library(gstat) detach("package:gstat") # library 的 逆 向 操 作 library() #查看所有可用的包 search() #查看當前調入記憶體的包 7.查找幫助 ?gstat help('gstat') apropos('gstat') 8.環境變數(options) options() options("digits") # 默 認 打 印 字 符 長 度 options(digits=3) # 設置列印字元長度 9.運行系統命令 system("ls x*") files <- system("ls x*",intern=T) # 保存輸出結果為R對象,加入參數intern=T 10.記憶體管理 Rgui --min-vsize=10M --max-vsize=100M --min-nsize=500k --max-nsize=1M # 啟 動 時 候 管 理 內 存 # 啟動後修改最大記憶體與查詢記憶體信息 help(memory.size) memory.size(max = FALSE) memory.limit(size = NA) memory.limit() memory.profile() 11.顯示記憶體中的變數 ls() ls.str() str(x) 12.清除記憶體中的變數 rm(list=ls()) rm('a') 13.測試運行時間 # 將 函 數 包 含 在system.time() 內, 返回運行時間 system.time(for(i in 1:100) mad(runif(1000))) 15.原子類型 R的對象類型包括 數 值 型 (numeric) , 復 數 型 (complex) , 邏 輯 型 (logical) , 字 符 型 (character) 原 味 型 (raw) NA 16.向量 向量必須保證它的所有元素是一 樣的模式。向量對象的類型的包括: 實數、複數、邏輯、字元串。 它們是原子(atomic), 即元素類型一樣。 17.因數 一個因數不僅包括分類變數本身還包括變數不同的可能水平(即使它們在數據中不出現)。因數函數factor用下麵的選項創建一個因數 : factor(x, levels = sort(unique(x), na.last = TRUE),labels = levels, exclude = NA, ordered = is.ordered(x)) 18.列表(list) R的列表(list)是一個以對象的有序集合構成的對象 。 列表中包含的對象又稱為它的分量(components)。每個分量的長度和類型可以不同。 Lst <- list(name="Fred", wife="Mary", no.children=3, child.ages=c(4,7,9)) 獲取分量 Lst$name 和Lst[[1]] 返 回 結 果 都 是"Fred", Lst$wife 和Lst[[2]] 返 回 的 則 是"Mary", Lst$child.ages[1] 和Lst[[4]][1] 返 回 一 樣 的 數 字4 這裡特別要註意一下Lst[[1]]和Lst[1]的差別 。[[...]]是用來選擇單個元素的操作符,而[...]是一個更為一般的下標操作符。因此前者得到的是列表Lst中的第一個對象,並且含有分量名字的命名列表(named list)中的分量名字會被排除在 外的失。後者得到的則是列表Lst中僅僅由第一個元素構成的子列表。如果是命名列表,分量名字會傳給子列表的。 19.數據框(data.frame) 數據框(data.frame)也是列表夬是一個屬於“data.frame”類的列表。不過,對於可能屬於數據框的列表對象有一些限制條件。 分量必須是向量(數值、字元、邏輯),因數,數值矩陣,列表或者其他數據框;每列的行數必須相等。 數據框常常會被看作是一個由不同模式和屬性的列構成的矩陣。它能以矩陣形式出現,行列可以通過矩陣的索引習慣訪問。 20.矩陣 矩陣(matrix)是一個雙下標(2維)的數組央但是,它非常的重要,以至於需要單獨討論。 包括許多只對矩陣操作的操作符和函數。 命名與數組array()一樣。 矩陣的下標順序是先第一列,然後第二列,等等。 d<-matrix(c(1,2,3,4,5,6,7,8,9),nc=3) 21.數組(array)及維度命名 數組可以看作是帶有多個下標類型相同的元素集合,如數值型夬是矩陣的推廣。R有一些簡單的工具創建和處理數組,特別是矩陣。 向量只有在定義了dim屬性後才能作為數組在R中使用。假定,z是一個含1500個元素的向量。那麼dim(z)<-c(3,5,100),對dim屬性的賦值使得z向量成一個3維的3*5*100的數組。 #命名的順序總是行,列,第三維,...,每一維還可以有一個總名字,也可以沒有 Rabbits <-array( c( 0, 0, 6, 5, 3, 0, 3, 6, 6, 2, 0, 4, 5, 6, 1, 0, 2, 5, 0, 0), dim = c(2, 2, 5), dimnames = list( Delay = c("None", "1.5h"), Response = c("Cured", "Died"), Penicillin.Level = c("1/8", "1/4", "1/2", "1", "4"))) 22.字元串及相關操作 針對字元串的函數有 print, paste, cat, nchar, strsplit, regexpr, grep, gsub, sub等。 > seq="GGGGCGAAACCGAGACTCTCAAATGACTTTTCTGA" > seq=strsplit(seq,"") chartr(old, new, x):字元串替換 tolower(x),toupper(x):大小寫變換 paste, cat:合併字元串 nchar:有多少字母 substr(x, start, stop):取子串 strsplit:按分隔符切分字元串 gsub, sub:子串替換 regexpr, grep:查找子串 23.分數 MASS fraction函數可以將小數轉換為近似的分數 > fractions(0.291667) 24.日期和時間 當前日期和時間夬返回Date和DateTimeClasses對象。 > date() > Sys.time() > Sys.Date() > s='08:10:00' > z=strptime(s,'%H:%M:%S') > class(z) 字元串轉換為日期時間的函數有format和as.character format將Date POSIXlt POSIXct轉換為指定格式的字元串。 例如 > w=format.POSIXlt(z,format="%Y-%m-%d") as.character轉換為字元串。 例如 > w=as.character(z) strptime將字元串轉換為“POSIXlt”,例如 > w=strptime("09:10:00",'%H:%M:%S') strftime是format.POSIXlt的一個wrapper # 將 DateTimecleses 轉 換 為 Date。 例如 > as.Date(w) #時間差異 as.double(difftime(w,z,units="sec")) 16.字元串表達式與求值 # 返 回 表 達 式 列 表(list), 但 是 不 求 值 parse(text="0==1") expression(0 == 1) # 求 字 符 串 代 表 的 表 達 式 的 值 eval(parse(text="0==1")) # deparse() 返回函數代碼字元串. substitute() 將變數替換為其值. 17.讀取外部數據 data(meuse) #rda read.table(file=file.choose(), header=T) #text read.csv('D:/R/test2.csv', header=T, row.names=1) #csv data<-read.table( file="clipboard",sep="\t",header=F, colClasses = "numeric",na.strings = "-") #從剪切板取數據 data<-t(matrix(scan("fileName",sep=','), 5, 364)) # 讀取大數據,讀 入364行,每行有5個數 18.給變數賦值 data.entry(X)將打開一個圖形編輯器並且可以通過點擊適當的單元格修改數值 height<-c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91) seq():順序產生數,預設by為1 letters():順序產生字母,預設by為1 19.查看對象類型 mode(x) # 顯示數據類型 typeof(x) length(x) 22.獲取和改變對象屬性 attributes(y) str(y) table(x) dim(y) #查看或改變對象的維度,這裡將向量變為數組。 dimnames(y) dimnames(y)$x class(y) # 確定y的class attr(z, "dim") <- c(10,10) # 允許R把z當作一個10×10 的矩陣。 20.類型轉換 as(x,"character") as.character(x) as.numeric(s) rbind():將向量按行結合為矩陣,cbind()則相反。 round():起到四捨五入的作用,預設轉化為整數。 mean():平均值。 sum():求和。 min():最小值 max():最大值 prod():將數據集中數連乘。 var():方差。 sd():標準差。 which():得到的是向量的下標 rev(): sort(): t():使矩陣轉置 矩陣相乘是a%*%b, a*b是相對應位置上的數相乘。 diag():對矩陣求對角向量;對向量求對角矩陣;參數為常數時求單位向量矩陣。 solve(a):求矩陣的逆矩陣; solve(a,b):求ax=b方程組的解。 rnorm():生成正態分佈數。 rpois():泊松分佈 rexp():指數分佈 rgamma():Gamma分佈 runif():均勻分佈 rbinom():二項分佈 rgeom():幾何分佈 ------------------------------------------------------ > library(sp) > library(maptools) > library(raster) > maxd3 = readAsciiGrid("max.d3.txt") > rasterlayer.maxd3 = raster(maxd3) > maxd1 = readAsciiGrid("max.d1.txt") > rasterlayer.maxd1 = raster(maxd1) > rasterlayer.max.d3.d1 = rasterlayer.maxd3 - rasterlayer.maxd1 > rasterlayer.maxRange = rasterlayer.maxd1>0 > maxRange = rasterToPolygons(rasterlayer.maxRange, dissolve=TRUE) > plot(maxRange) > cols = grey.colors(20, 0.1, 0.9, 2.2) > image(maxd3, col=cols, useRaster=TRUE)