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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

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

目錄

一、邏輯型向量與比較運算

二、?邏輯運算

三、邏輯運算函數


一、邏輯型向量與比較運算

????????邏輯型是 R 的基本數據類型之一,只有兩個值 TRUE FALSE, 缺失時為 NA。 ????????邏輯值一般產生自比較,如 sele <- (log10(15) < 2); print(sele)

返回:

?????????向量比較結果為邏輯型向量。如

c(1, 3, 5) > 2

返回:

(1:4) >= (4:1)

返回:

????????NA 比較產生 NA,如

c(1, NA, 3) > 2

返回:

NA == NA

返回:

????????為了判斷向量每個元素是否 NA,用 is.na() 函數,如

is.na(c(1, NA, 3) > 2)

返回:

????????is.finite() 判斷向量每個元素是否 Inf

is.finite(c(1,Inf,8))

返回:

????????比較運算符包括 :< <= > >= == != %in% ????????分別表示小于、小于等于、大于、大于等于、等于、不等于、屬于。要注意等于 比較用了兩個等號。 ????????%in% 是比較特殊的比較,x %in% y 的運算把向量 y 看成集合,運算結果是一個邏輯型向量,第 i 個元素的值為 x 的第 i 元素是否屬于 y 的邏輯型值。如 c(1,3) %in% c(2,3,4)

返回:

c(NA,3) %in% c(2,3,4) ## [1] FALSE TRUE c(1,3) %in% c(NA, 3, 4) ## [1] FALSE TRUE c(NA,3) %in% c(NA, 3, 4) ## [1] TRUE TRUE ????????函數 match(x, y) 起到和 x %in% y 運算類似的作用,但是其返回結果不是找到與否,而是對 x 的每個元素,找到其在 y 中首次出現的下標找不到時取缺失值,如 match(c(1, 3), c(2,3,4,3))

返回:

二、?邏輯運算

????????為了表達如 “x > 0 而且 x < 1”, “x 0 或者 x 1” 之類的復合比較,需要使用邏輯運算把兩個比較連接起來。邏輯運算符為 &, | !, 分別表示 同時成 立”兩者至少其一成立條件的反面。比如, age<=3 表示嬰兒,sex==' 女' 表示女性, ????????則 age<=3 & sex==' ' 表示女嬰, ????????age<=3 | sex==' 女'表示嬰兒或婦女, ????????!(age<=3 | sex==' 女') 表示既非嬰兒也非婦女。 為了確定運算的先后次序可以用圓括號 () 指定。 ????????用 xor(x, y) 表示 x y 異或運算,即值不相等時為真值,相等時為假值,有缺失值參加運算時為缺失值。 ????????邏輯向量與邏輯標量之間的邏輯運算,兩個邏輯向量之間的邏輯運算規則遵從一般 R 向量間運算規則。 ????????在右運算符是缺失值時,如果左運算符能夠確定結果真假,可以得到非缺失的結果。例如,TRUE | NA 為 TRUE, FALSE & NA FALSE ????????不能確定結果時返回 NA,比如,TRUE & NA NA, FALSE | NA NA ????????&&|| 分別為短路的標量邏輯與和短路的標量邏輯或,僅對兩個標量進行運算,如果有向量也僅使用第一個元素。一般用在 if 語句、while 語句中,且只要第一個比較已經決定最終結果就不計算第二個比較。例如 if(TRUE || sqrt(-1)>0) next

由于其中的 sqrt(-1) 部分不會執行,結果返回:

三、邏輯運算函數

????????因為 R 中比較與邏輯運算都支持向量之間、向量與標量之間的運算,所以在需要一個標量結果時要特別注意,后面講到的 if 結構、while 結構都需要邏輯標量而且不能是缺失值。這時,應該對缺失值結果單獨考慮 ????????若 cond 是邏輯向量,用 all(cond) 測試 cond 的所有元素為真;用 any(cond) 測試 cond 至少一個元素為真。cond 中允許有缺失值,結果可能為缺失值。如 c(1, NA, 3) > 2 all(c(1, NA, 3) > 2) any(c(1, NA, 3) > 2) all(NA) any(NA)

返回:

????????函數 which() 返回真值對應的所有下標,如

which(c(FALSE, TRUE, TRUE, FALSE, NA)) which((11:15) > 12)

返回:

????????函數 identical(x,y) 比較兩個 R 對象 x y 的內容是否完全相同,結果只會取標量 TRUE FALSE 兩種。如 identical(c(1,2,3), c(1,2,NA)) identical(c(1L,2L,3L), c(1,2,3))

因為前一向量是整數型,后一向量是實數型,結果返回:

?

????????函數 all.equal() identical() 類似,但是在比較數值型時不區分整數型與實數型,而且相同時返回標量 TRUE,但是不同時會返回一個說明有何不同的字符串。如 all.equal(c(1,2,3), c(1,2,NA)) all.equal(c(1L,2L,3L), c(1,2,3))

返回:

????????函數 duplicated() 返回每個元素是否為重復值的結果,如:

duplicated(c(1,2,1,3,NA,4,NA))

返回:

?????????用函數 unique() 可以返回去掉重復值的結果,如

unique(c(1,2,1,3,NA,4,NA))

返回:

總結

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

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