欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語言數(shù)據(jù)類型與相應運算的實現(xiàn)

 更新時間:2022年03月04日 10:18:41   作者:洋洋菜鳥  
本文主要介紹了R語言數(shù)據(jù)類型與相應運算的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一、常量與變量

1.常量   

        R 語言基本的數(shù)據(jù)類型有數(shù)值型,邏輯型(TRUE, FALSE),文本(字符串)。 支持缺失值,有專門的復數(shù)類型。
        常量是指直接寫在程序中的值。
        數(shù)值型常量包括整型、單精度、雙精度等,一般不需要區(qū)分。寫法如 123, 123.45, -123.45,-0.012, 1.23E2, -1.2E-2 等。為了表示 123 是整型,可以寫成 123L。
        字符型常量用兩個雙撇號或兩個單撇號包圍,如"Li Ming" 或'Li Ming'。字符型支持中文,如"李明" 或'李明'。國內(nèi)的中文編碼主要有 GBK 編碼和 UTF-8 編碼,有時會遇到編碼錯誤造成亂碼的題,MS Windows 下 R 程序 一般用 GBK 編碼,但是 RStudio 軟件采用 UTF-8 編碼。在 R 軟件內(nèi)字符串一般用 UTF-8 編碼保存。
        邏輯型常量只有 TRUE 和 FALSE。
        缺失值用 NA 表示。統(tǒng)計計算中經(jīng)常會遇到缺失值,表示記錄丟失、因為錯誤而不能用、節(jié)假日沒有數(shù)據(jù)等。除了數(shù)值型,邏輯型和字符型也可以有缺失值,而且字符型的空白值不會自動辨識為缺失值,需要自己規(guī)定。R 支持特殊的 Inf 值,這是實數(shù)型值,表示正無窮大,不算缺失值。
         復數(shù)常量寫法如 2.2 + 3.5i, 1i 等。

2.變量      

        程序語言中的變量用來保存輸入的值或者計算得到的值。在 R 中,變量可以保存所有的數(shù)據(jù)類型,比如標量、向量、矩陣、數(shù)據(jù)框、函數(shù)等。
        變量都有變量名,R 變量名必須以字母、數(shù)字、下劃線和句點組成,變量名的第一個字符不能取為數(shù)字。在中文環(huán)境下,漢字也可以作為變量名的合法字符使用。變量名是區(qū)分大小寫的,y 和 Y 是兩個不同的變量名。
        變量名舉例: x, x1, X, cancer.tab, clean_data, diseaseData。
        用 <-賦值的方法定義變量。<-也可以寫成 =,但是 <-更直觀。如

x5 <- 6.25
x6 = sqrt(x5)

二、數(shù)據(jù)類型

        R 語言基本的數(shù)據(jù)類型有數(shù)值,邏輯型(TRUE, FALSE),文本(字符串)。支持缺失值,有專門的復數(shù)類型。         

        R 語言數(shù)據(jù)結(jié)構(gòu)包括向量,矩陣和數(shù)據(jù)框,多維數(shù)組,列表,對象等。數(shù)據(jù)中元素、行、列還可以用名字訪問。最基本的是向量類型。向量類型數(shù)據(jù)的訪問方式也是其他數(shù)據(jù)類型訪問方式的基礎。

三、數(shù)值型向量

        向量是將若干個基礎類型相同的值存儲在一起,各個元素可以按序號訪問。如 果將若干個數(shù)值存儲在一起可以用序號訪問,就叫做一個數(shù)值型向量。

3.1 c() 函數(shù)

c() 函數(shù)把多個元素或向量組合成一個向量。如:

marks <- c(10, 6, 4, 7, 8)
marks

返回:

再如: 

x <- c(1:3, 10:13)
x

返回:

 再如:

x1 <- c(1, 2)
x2 <- c(3, 4)
x <- c(x1, x2)
x

返回:

3.2 length(x)

        length(x) 可以求 x 的長度

x <- c(1:3, 10:13)
length(x)

返回:

3.3 numeric()

        numeric() 函數(shù)可以用來初始化一個指定元素個數(shù)而元素都等于零的數(shù)值型向量,如 numeric(10) 會生成元素為 10 個零的向量,長度為零的向量表示為 numeric(0)。

numeric(10)

返回:

四、向量運算

1.標量和標量運算

        單個數(shù)值稱為標量,R 沒有單獨的標量類型,標量實際是長度為 1 的向量。 R 中四則運算用 + - * / ˆ 表示 (加、減、乘、除、乘方),如

1.5 + 2.3 - 0.6 + 2.1*1.2 - 1.5/0.5 + 2^3
## [1] 10.72

返回:

        R 中四則運算仍遵從通常的優(yōu)先級規(guī)則,可以用圓括號 () 改變運算的先后次序。如

1.5 + 2.3 - (0.6 + 2.1)*1.2 - 1.5/0.5 + 2^3
## [1] 5.56

        除了加、減、乘、除、乘方,R 還支持整除運算和求余運算。用%/% 表示整除, 用%% 表示求余。如

5 %/% 3
## [1] 1
5 %% 3
## [1] 2

返回:

2.向量與標量運算

        向量與標量的運算為每個元素與標量的運算, 如

x <- c(1, 10) x + 2
## [1] 3 12
x - 2
## [1] -1 8
x * 2
## [1] 2 20
x / 2
## [1] 0.5 5.0
x ^ 2
## [1] 1 100
2 / x
## [1] 2.0 0.2
2 ^ x
## [1] 2 1024
x %% 2
##[1] 1 0
x %/% 2
##[1] 0 5

返回:

一個向量乘以一個標量,就是線性代數(shù)中的數(shù)乘運算。 四則運算時如果有缺失值,缺失元素參加的運算相應結(jié)果元素仍缺失。如

c(1, NA, 3) + 10

返回:

3.等長向量運算

等長向量的運算為對應元素兩兩運算。如

x1 <- c(1, 10)
x2 <- c(4, 2)
x1 + x2

返回:

同樣也可以進行減,乘,除;如

x1 - x2
## [1] -3 8
x1 * x2
## [1] 4 20
x1 / x2
## [1] 0.25 5.00

4.不等長向量的運算

        兩個不等長向量的四則運算,如果其長度為倍數(shù)關(guān)系,規(guī)則是每次從頭重復利用短的一個。如:

x1 <- c(10, 20)
x2 <- c(1, 3, 5, 7)
x1 + x2

返回:

        不僅是四則運算,R 中有兩個或多個向量按照元素一一對應參與某種運算或函數(shù)調(diào)用時,如果向量長度不同,一般都采用這樣的規(guī)則。         如果兩個向量的長度不是倍數(shù)關(guān)系,會給出警告信息。如

c(1,2) + c(1,2,3)

返回:

五、向量函數(shù)

1.向量化的函數(shù)

        R 中的函數(shù)一般都是向量化的: 在 R 中,如果普通的一元函數(shù)以向量為自變量,一般會對每個元素計算。這樣的函數(shù)包括 sqrt, log10, log, exp, sin, cos, tan 等許多。如

sqrt(c(1, 4, 6.25))

返回:

        為了查看這些基礎的數(shù)學函數(shù)的列表,運行命令 help.start(),點擊鏈接 “Search Engine and Keywords”,找到 “Mathematics” 欄目,瀏覽其中的 “arith” 和 “math” 鏈接中的說明。

常用的數(shù)學函數(shù)有:常用的數(shù)學函數(shù)有:
• 舍入:ceiling, floor, round, signif, trunc, zapsmall
• 符號函數(shù) sign
• 絕對值 abs
• 平方根 sqrt
• 對數(shù)與指數(shù)函數(shù) log, exp, log10, log2
• 三角函數(shù) sin, cos, tan
• 反三角函數(shù) asin, acos, atan, atan2
• 雙曲函數(shù) sinh, cosh, tanh
• 反雙曲函數(shù) asinh, acosh, atanh
有一些不太常用的數(shù)學函數(shù)
• 貝塔函數(shù) beta, lbeta
• 伽 瑪 函 數(shù) gamma, lgamma, digamma, trigamma, tetragamma, pentagamma
• 組合數(shù) choose, lchoose
• 富利葉變換和卷積 fft, mvfft, convolve
• 正交多項式 poly
• 求根 polyroot, uniroot
• 最優(yōu)化 optimize, optim
• Bessel 函數(shù) besselI, besselK, besselJ, besselY
• 樣條插值 spline, splinefun
• 簡單的微分 deriv

        如果自己編寫的函數(shù)沒有考慮向量化問題,可以用 Vectorize() 函數(shù)將其轉(zhuǎn)換成向量化版本。

2.排序函數(shù)

        sort(x) 返回排序結(jié)果。rev(x) 返回把各元素排列次序反轉(zhuǎn)后的結(jié)果。order(x) 返回排序用的下標。如

x <- c(33, 55, 11)
sort(x)
## [1] 11 33 55
rev(sort(x))
## [1] 55 33 11
order(x)
## [1] 3 1 2
x[order(x)]
## [1] 11 33 55

返回:

      order(x)  結(jié)果中 3 是 x 的最小元素 11 所在的位置下標,1 是 x 的 第二小元素 33 所在的位置下標,2 是 x 的最大元素 55 所在的位置下標。

3.統(tǒng)計函數(shù)

        sum(求和), mean(求平均值), var(求樣本方差), sd(求樣本標準差), min(求最小值), max(求最大值), range(求最小值和最大值) 等函數(shù)稱為統(tǒng)計函數(shù),把輸入向量看作樣本,計算樣本統(tǒng)計量。prod 求所有元素的乘積。

        cumsumcumprod 計算累加和累乘積。如

cumsum(1:5)

返回:

cumprod(1:5)

返回:

        其它一些類似函數(shù)有 pmax, pmin, cummax, cummin 等。

4.生成規(guī)則序列的函數(shù)

seq 函數(shù)是冒號運算符的推廣。比如

seq(5)
seq(2,5)
seq(11, 15, by=2)
#產(chǎn)生從 0 到 2π 的等間隔序列,序列長度指定為 100
seq(0, 2*pi, length.out=100) 

返回:

         在使用變量名時次序可以顛倒,比如

seq(to=5, from=2)

返回:

         rep() 函數(shù)用來產(chǎn)生重復數(shù)值。

為了產(chǎn)生一個初值為零的長度為 n 的向量,用 x <- rep(0, n) 。

rep(c(1,3), 2)

返回:

 再比如:

rep(c(1,3), c(2,4))

        把第一自變量的第一個元素 1 按照第二自變量中第一個元素 2 的次數(shù)重復,把第一自變量 中第二個元素 3 按照第二自變量中第二個元素 4 的次數(shù)重復,返回:

         如 果 希 望 重 復 完 一 個 元 素 后 再 重 復 另 一 元 素, 用 each= 選 項, 比 如

rep(c(1,3), each=2)

返回:

六、 復數(shù)向量

        復數(shù)常數(shù)表示如 3.5+2.4i, 1i。用函數(shù) complex() 生成復數(shù)向量,指定實部和虛部。如

complex(c(1,0,-1,0), c(0,1,0,-1))

返回:

         在 complex() 中可以用 modarg 指定模和輻角,如

complex(mod=1,arg=(0:3)/2*pi)

返回:

        用 Re(z) 求 z 的實部,用 Im(z) 求 z 的虛部,用 Mod(z)abs(z) 求 z 的模,用 Arg(z) 求 z 的輻角,用 Conj(z) 求 z 的共軛。         sqrt, log, exp, sin 等函數(shù)對復數(shù)也有定義,但是函數(shù)定義域在自變量為實數(shù)時可能有限制而復數(shù)無限制,這時需要區(qū)分自變量類型。如

sqrt(-1)sqrt(-1 + 0i)

返回:

練習

1. 顯示 1 到 100 的整數(shù)的平方根和立方根(提示:立方根就是三分之一次 方)。 
2. 設有 10 個人的小測驗成績?yōu)?
        77 60 91 73 85 82 35 100 66 75
        (1) 把這 10 個成績存入變量 x;
        (2) 從小到大排序;
        (3) 計算 order(x),解釋 order(x) 結(jié)果中第 3 項代表的意義。
        (4) 計算這些成績的平均值、標準差、最小值、最大值、中位數(shù)。
3. 生成 [0, 1] 區(qū)間上等間隔的 100 個格子點存入變量 x 中。

到此這篇關(guān)于R語言數(shù)據(jù)類型與相應運算的實現(xiàn)的文章就介紹到這了,更多相關(guān)R語言數(shù)據(jù)類型與相應運算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • R語言變量重編碼、重命名的操作

    R語言變量重編碼、重命名的操作

    這篇文章主要介紹了R語言變量重編碼、重命名的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言-如何循環(huán)讀取excel并保存為RData

    R語言-如何循環(huán)讀取excel并保存為RData

    這篇文章主要介紹了R語言循環(huán)讀取excel并保存為RData的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 淺析R語言中map(映射)與reduce(規(guī)約)

    淺析R語言中map(映射)與reduce(規(guī)約)

    大家在R語言數(shù)據(jù)處理中非常常見map(映射)與reduce(規(guī)約)操作,map表示映射,可以在一個或多個列表/向量的每個位置上應用相同函數(shù)進行計算而reduce函數(shù)表示規(guī)約,計算向量中相鄰的兩個元素,本文給大家介紹R語言map與reduce的相關(guān)知識,感興趣的朋友一起看看吧
    2021-05-05
  • R語言讀取csv文件出錯的解決方案

    R語言讀取csv文件出錯的解決方案

    這篇文章主要介紹了R語言讀取csv文件出錯的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言邏輯回歸深入講解

    R語言邏輯回歸深入講解

    這篇文章主要介紹了R語言邏輯回歸深入講解,文中對于邏輯回歸講解的很細致,有感興趣的同學可以研究下
    2021-03-03
  • R語言交叉驗證的實現(xiàn)代碼

    R語言交叉驗證的實現(xiàn)代碼

    這篇文章主要介紹了R語言交叉驗證的實現(xiàn),本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • R語言RcppEigen計算點乘與矩陣乘法連乘算法錯誤解決

    R語言RcppEigen計算點乘與矩陣乘法連乘算法錯誤解決

    這篇文章主要為大家介紹了RcppEigen計算點乘與矩陣乘法時發(fā)生連乘計算錯誤的解決方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • R語言實現(xiàn)用cbind合并兩列數(shù)據(jù)

    R語言實現(xiàn)用cbind合并兩列數(shù)據(jù)

    這篇文章主要介紹了R語言實現(xiàn)用cbind合并兩列數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言-繪制雙坐標圖直方圖與折線的結(jié)合方式

    R語言-繪制雙坐標圖直方圖與折線的結(jié)合方式

    這篇文章主要介紹了R語言-繪制雙坐標圖直方圖與折線的結(jié)合方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言與格式,日期格式,格式轉(zhuǎn)化的操作

    R語言與格式,日期格式,格式轉(zhuǎn)化的操作

    這篇文章主要介紹了R語言與格式,日期格式,格式轉(zhuǎn)化的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論