R語言學習

来源:http://www.cnblogs.com/gispathfinder/archive/2016/08/14/5770069.html
-Advertisement-
Play Games

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)

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一共 15 篇隨筆,主要是為了記錄數據分析過程中的一些小 demo,分享給其他需要的網友,更為了方便以後自己查看,15 篇隨筆,每篇內容基本都是以一句說明加一段代碼的方式, 保持簡單小巧,看起來也清晰 ,一共可以劃分為三個大部分: 第一部分簡單介紹數據分析,以一個小例子簡單說明瞭什麼是數據分析和 I ...
  • --> List 列表中的自動添加的多餘空間長度該怎麼去除呢?... --> 還是沒有解決多餘空間的問題啊... ...
  • 目錄 什麼叫發佈 webapp發佈方式 reload 總結 什麼叫發佈 發佈就是讓tomcat知道我們的程式在哪裡,並根據我們的配置創建Context,進行初始化、啟動,如下: 程式所在的位置 創建Context,添加到Host 初始化(創建解析webxml的digester) 啟動(初始化filt ...
  • 一、Bean的生命周期 Spring IOC容器可以管理Bean的生命周期,允許在Bean生命周期的特定點執行定製的任務。 Spring IOC容器對Bean的生命周期進行管理的過程如下: (1).通過構造器或工廠方法創建Bean實例。 (2).為Bean的屬性設置值和對其它Bean的引用。 (3) ...
  • 此圖是 java 中 Collection 相關的介面與類的關係的類圖。其中,類只是集合框架的一部分,比較常用的一部分。 第一次畫類圖,著實很費勁,不過收穫也不小。 下麵是相關介面和類的解釋說明。文字來自 JDK API 1.6 中文版。原諒我的懶惰,實在不想自己寫,太麻煩。如有錯誤,還請指正。 如 ...
  • 查看現有tomcat的記憶體大小情況1、啟動tomcat 2、訪問 http://localhost:8080/manager/status ,並輸入您在安裝tomcat時輸入的用戶與口令,如 admin ,密碼 admin(密碼是您在tomcat安裝時輸入的) 註:添加用戶,修改conf/tomca ...
  • 面試的時候經常會問到Java的單例模式,這道題能很好的考察候選人對知識點的理解程度。單例模式要求在系統運行時,只存在唯一的一個實例對象。 下麵我們來詳細剖析一下其中的關鍵知識點,並介紹五種實現方法,以及它們的優缺點。 一、最簡單的方法是在類載入的時候初始化這個單獨的實例。 首先,定義單例類(沒有特別 ...
  • 一.什麼是集合 集合是對象的集合,就像數組是數的集合。集合是一種容器,可以存放對象(可以是不同類型的對象)。 二.集合的優點(為什麼要用集合) 當然,在java里,可以使用數組來存放一組類型相同的對象。但是數組存放對象有兩個缺點(集合優點): 三.集合的實現 java中集合主要由兩個介面實現:Col ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...