日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

R手册(Common)--R语言入门

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R手册(Common)--R语言入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

**說明:**本節中大部分內容摘自書籍《R語言實戰(第2版)》

文章目錄

  • RStudio: Take control of your R code
  • 數據處理一般流程
    • R 數據結構
  • R 運算符
  • 概率函數
  • 控制語句與循環語句
  • 自定義函數
  • 調試
  • 擬合線性模型formula
  • R語言可視化
  • data.table 和 tidyverse

RStudio: Take control of your R code

RStudio是R的集成開發環境(IDE)。它包括一個控制臺,支持直接代碼執行的語法高亮編輯器,以及繪圖,歷史記錄,調試和工作區管理工具。

RStudio可用于開源和商業版本,并可在桌面(Windows,Mac和Linux)或連接到RStudio Server或RStudio Server Pro(Debian / Ubuntu,RedHat / CentOS和SUSE Linux)的瀏覽器上運行。

在 RStudio 下使用 R 的基本功能
RStudio參考卡片

數據處理一般流程

R 數據結構

R擁有許多用于存儲數據的對象類型,包括標量、向量、矩陣、數組、數據框和列表。

1. 向量
向量是用于存儲數值型、字符型或邏輯型數據的一維數組。

a <- c(1, 2, 5, 3, 6, -2, 4) b <- c("one", "two", "three") c <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE) d<-1:10 #生成1-10整數向量

2. 矩陣
矩陣是一個二維數組,只是每個元素都擁有相同的模式(數值型、字符型或邏輯型)。

myymatrix <- matrix(vector, nrow=number_of_rows,ncol=number_of_columns, byrow=logical_value, dimnames=list(char_vector_rownames, char_vector_colnames))

3. 數組
數組(array)與矩陣類似,但是維度可以大于2。

myarray <- array(vector, dimensions, dimnames)

4. 數據框
由于不同的列可以包含不同模式(數值型、字符型等)的數據,數據框的概念較矩陣來說更 為一般。

mydata <- data.frame(col1, col2, col3,...)

5. 因子
變量可歸結為名義型、有序型或連續型變量。名義型變量是沒有順序之分的類別 變量。有序型變量表示一種順序關系,而非數量關系。
類別(名義型)變量和有序類別(有序型)變量在R中稱為因子(factor)。因子在R中非 常重要,因為它決定了數據的分析方式以及如何進行視覺呈現。

factor(x = character(), levels, labels = levels,exclude = NA, ordered = is.ordered(x), nmax = NA)

6. 列表

列表(list)是R的數據類型中為復雜的一種。一般來說,列表就是一些對象(或成分, component)的有序集合。列表允許你整合若干(可能無關的)對象到單個對象名下。

mylist <- list(object1, object2, ...)

7. 日期值

as.Date(x, "input_format")

日期值的默認輸入格式為yyyy-mm-dd。

mydates <- as.Date(c("2007-06-22", "2004-02-13"),"%Y-%m-%d") format符號含義示例
%d數字表示的日期(0~31)01~31
%a縮寫的星期名Mon
%A非縮寫星期名Monday
%m月份(00~12)00~12
%b縮寫的月份Jan
%B非縮寫月份January
%y兩位數的年份07
%Y四位數的年份2007

8. 索引和切片
以data.frame為例

df<-data.frame(x=1:10,y=rnorm(10, mean=0, sd=1)) 用法說明
df[3,5]
df['x']返回x列,data.frame類型
df$x , df[[x]]返回向量類型
df[c(1,3,5), ]
df[-(1:5),]除了1-5列(R 中-是排除的意思)
df[x>3,]邏輯索引
df[x %in% c(3,5))]

R 運算符

數學運算描述
+, -, *, /
^, **求冪
x%%y求余(x mod y)。5%%2 的結果為 1
x%/%y整數除法。5%/%2 的結果為 2
邏輯運算
< ,<=!x
> , >=x \| y
== , !=x & y

概率函數

在R中,概率函數統一格式為:[dpqr]distribution_abbreviation()
其中第一個字母表示其所指分布的某一方面:

首字母說明主參數返回值示例
p分布函數(distribution function)分位數x值概率值F(x)=P{X<=x}pnorm(q)
d密度函數(density)分位數x值密度值f(x)=dF/dxdnorm(x)
q分位數函數(quantile function)概率P值分位數xqnorm§
r生成隨機數隨機數n隨機向量密度值rnorm(n)

概率分布

分布名稱縮寫分布名稱縮寫
Beta 分布betaLogistic 分布logis
二項分布binom多項分布multinom
柯西分布cauchy負二項分布nbinom
(非中心)卡方分布chsiq正態分布norm
指數分布exp泊松分布pois
F分布fWilcoxon 符號秩分布signrank
Gamma分布gammat分布t
幾何分布geom均勻分布unif
超幾何分布hyperWeibull 分布weibull
對數正態分布lnormWilcoxon 秩和分布wilcox
runif(n, min=0, max=1) #均勻分布 rnorm(n, mean=0, sd=1) #正態分布

控制語句與循環語句

控制語句

if(cond) expr if(cond) cons.expr else alt.expr if...else if...else ifelse(test, yes, no)switch(expr, ...)expr:可以為一個數字或字符串...:為一系列選擇項列若expr為字符串,...列表項為name_i=expr_i若expr為數字,...列表項按順序輸出

循環語句

for(var in seq) expr while(cond) expr repeat expr

循環語句關鍵字

break:跳出整個循環語句
continue: 跳出本次循環
next:跳出本次loop

自定義函數

function( arglist ) {exprreturn(object) }

… (dot-dot-dot):此特殊參數可以捕獲任何數量的參數

example:

>>>"%s*%" <- function(x,y) rep(x,y) #自定義二元符號 >>>"a"%s*%5 >>>"aaaaa"

調試

函數用法
stop(message)停止執行當前表達式返回message(常與if配合檢查自定義函數參數)
stopifnot(logit1,logit2,logit3…)檢查每個參數為TRUE,否則停止執行當前表達式返回message

擬合線性模型formula

在R中,擬合線性模型基本的函數就是lm(),格式為:
myfit <- lm(formula, data)

formula指要擬合的模型形式,
data是一個數據框,包含了用于擬合模型的數據。
結果對象(本例中是myfit)存儲在一個列表中,包含了所擬合模型的大量信息。

表達式(formula) 形式如下:
Y ~ X1 + X2 + ... + Xk
~左邊為響應變量,右邊為各個預測變量,預測變量之間用+符號分隔。

formula常用符號說明示例
~分隔符,左邊為響應變量,右邊為解釋變量
+預測變量分隔符y~x+y
:預測變量交互項y~x+y+x:y
*包含所有交互項的簡潔方式代碼y~ x * z可展開為y ~ x + z + x:z
^交互項的最高次數代碼 y ~ (x + z + w)^2 可展開為 y ~ x + z + w + x:z + x:w + z:w
.(dot)除因變量外的所有變量y~.
-移除一項y~xzw–x:z:w可展開為 y ~ (x + z + w)^2
-1移除截距y~x-1
I()算術y~x+I(x^2)
function數學函數log(y) ~ x + z + w

R語言可視化

除了基礎圖形,grid、lattice和ggplot2軟件包也提供了圖形系統,它們克服了R基礎圖 形系統的低效性,大大擴展了R的繪圖能力。

  • grid圖形系統可以很容易地控制圖形基礎單元,給予編程者創作圖形的極大靈活性。
  • lattice包通過一維、二維或三維條件繪圖,即所謂的網格圖形(trellis graph)來對多元變量關 系進行直觀展示。
  • ggplot2包極大地擴展 了R繪圖的范疇,提高了圖形的質量。
系統基礎安裝中是否包含是否需要顯式加載
base
grid
lattice
ggplot2

data.table 和 tidyverse

data.table
R語言data.table包是自帶包data.frame的升級版,用于數據框格式數據的處理,最大的特點快。
包括兩個方面,一方面是寫的快,代碼簡潔,只要一行命令就可以完成諸多任務。
另一方面是處理快,內部處理的步驟進行了程序上的優化,使用多線程,甚至很多函數是使用C寫的,大大加快數據運行速度。因此,在對大數據處理上,使用data.table無疑具有極高的效率。

tidyverse

tidyverse是一系列包的組合,構建了一套完整的數據分析生態鏈,提供了一套整潔的數據導入,分析和建模方法,刷新了R語言原有的數據科學體系。

作者Hadley Wickham在R語言數據科學領域是個鼎鼎有名的大人物,被稱為一個改變了R的人

總結

以上是生活随笔為你收集整理的R手册(Common)--R语言入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。