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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

R语言基础入门(3)之数据类型与相应运算1

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言基础入门(3)之数据类型与相应运算1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、常量與變量

1.常量

2.變量? ? ??

二、數據類型

三、數值型向量

3.1?c() 函數

3.2?length(x)

3.3?numeric()

四、向量運算

1.標量和標量運算

2.向量與標量運算

3.等長向量運算

4.不等長向量的運算

五、向量函數

1.向量化的函數

2.排序函數

3.統計函數

4.生成規則序列的函數

六、?復數向量

練習


一、常量與變量

1.常量

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

?????????復數常量寫法如 2.2 + 3.5i, 1i 等。

2.變量? ? ??

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

二、數據類型

????????R 語言基本的數據類型有數值,邏輯型(TRUE, FALSE),文本(字符串)。支持缺失值,有專門的復數類型。 ????????R 語言數據結構包括向量,矩陣和數據框,多維數組,列表,對象等。數據中元素、行、列還可以用名字訪問。最基本的是向量類型。向量類型數據的訪問方式也是其他數據類型訪問方式的基礎。

三、數值型向量

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

3.1?c() 函數

c() 函數把多個元素或向量組合成一個向量。如: 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() 函數可以用來初始化一個指定元素個數而元素都等于零的數值型向量,如 numeric(10) 會生成元素為 10 個零的向量,長度為零的向量表示為 numeric(0)。

numeric(10)

返回:

四、向量運算

1.標量和標量運算

????????單個數值稱為標量,R 沒有單獨的標量類型,標量實際是長度為 1 的向量。 R 中四則運算用 + - * / ? 表示 (加、減、乘、除、乘方),如 1.5 + 2.3 - 0.6 + 2.1*1.2 - 1.5/0.5 + 2^3 ## [1] 10.72

返回:

?

????????R 中四則運算仍遵從通常的優先級規則,可以用圓括號 () 改變運算的先后次序。如 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

返回:

一個向量乘以一個標量,就是線性代數中的數乘運算 四則運算時如果有缺失值,缺失元素參加的運算相應結果元素仍缺失。如 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.不等長向量的運算

? ? ? ? 兩個不等長向量的四則運算,如果其長度為倍數關系,規則是每次從頭重復利用短的一個。如: x1 <- c(10, 20) x2 <- c(1, 3, 5, 7) x1 + x2

返回:

?

????????不僅是四則運算,R 中有兩個或多個向量按照元素一一對應參與某種運算或函數調用時,如果向量長度不同,一般都采用這樣的規則。 ????????如果兩個向量的長度不是倍數關系,會給出警告信息。如 c(1,2) + c(1,2,3)

返回:

五、向量函數

1.向量化的函數

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

返回:

????????為了查看這些基礎的數學函數的列表,運行命令 help.start(),點擊鏈接 “Search Engine and Keywords”,找到 “Mathematics” 欄目,瀏覽其中的 “arith” 和 “math” 鏈接中的說明。 常用的數學函數有: ? 舍入:ceiling, floor, round, signif, trunc, zapsmall ? 符號函數 sign ? 絕對值 abs ? 平方根 sqrt ? 對數與指數函數 log, exp, log10, log2 ? 三角函數 sin, cos, tan ? 反三角函數 asin, acos, atan, atan2 ? 雙曲函數 sinh, cosh, tanh ? 反雙曲函數 asinh, acosh, atanh 有一些不太常用的數學函數 ? 貝塔函數 beta, lbeta ? 伽 瑪 函 數 gamma, lgamma, digamma, trigamma, tetragamma, pentagamma ? 組合數 choose, lchoose ? 富利葉變換和卷積 fft, mvfft, convolve ? 正交多項式 poly ? 求根 polyroot, uniroot ? 最優化 optimize, optim ? Bessel 函數 besselI, besselK, besselJ, besselY ? 樣條插值 spline, splinefun ? 簡單的微分 deriv ????????如果自己編寫的函數沒有考慮向量化問題,可以用 Vectorize() 函數將其轉換成向量化版本。

2.排序函數

????????sort(x) 返回排序結果。rev(x) 返回把各元素排列次序反轉后的結果。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)??結果中 3 是 x 的最小元素 11 所在的位置下標,1 是 x 的 第二小元素 33 所在的位置下標,2 是 x 的最大元素 55 所在的位置下標。

3.統計函數

????????sum(求和), mean(求平均值), var(求樣本方差), sd(求樣本標準差), min(求最小值), max(求最大值), range(求最小值和最大值) 等函數稱為統計函數,把輸入向量看作樣本,計算樣本統計量。prod 求所有元素的乘積。 ????????cumsumcumprod 計算累加和累乘積。如 cumsum(1:5)

返回:

cumprod(1:5)

返回:

????????其它一些類似函數有 pmax, pmin, cummax, cummin 等。

4.生成規則序列的函數

seq 函數是冒號運算符的推廣。比如 seq(5) seq(2,5) seq(11, 15, by=2) #產生從 0 到 2π 的等間隔序列,序列長度指定為 100 seq(0, 2*pi, length.out=100)

返回:

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

seq(to=5, from=2)

返回:

?????????rep() 函數用來產生重復數值。

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

返回:

?再比如:

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

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

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

返回:

六、?復數向量

????????復數常數表示如 3.5+2.4i, 1i。用函數 complex() 生成復數向量,指定實部和虛部。如 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 等函數對復數也有定義,但是函數定義域在自變量為實數時可能有限制而復數無限制,這時需要區分自變量類型。如 sqrt(-1) sqrt(-1 + 0i)

返回:

練習

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

總結

以上是生活随笔為你收集整理的R语言基础入门(3)之数据类型与相应运算1的全部內容,希望文章能夠幫你解決所遇到的問題。

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