最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

R語言向量下標(biāo)和子集的使用

 更新時(shí)間:2022年03月04日 10:44:48   作者:洋洋菜鳥  
本文主要介紹了R語言向量下標(biāo)和子集的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

1.正整數(shù)下標(biāo)

首先定義一個(gè)x,然后對(duì)向量 x, 在后面加方括號(hào)和下標(biāo)可以訪問向量的元素和子集,如:

 定義一個(gè)x:

x <- c(1, 4, 6.25)
x

返回:

我們?nèi)〕龅诙€(gè)元素:

x[2]

返回:

我們?cè)傩薷牡诙€(gè)元素為 99 :

x[2] <- 99; x

返回:

我們?cè)偃∠碌?1、3 號(hào)元素 :

x[c(1,3)]

返回:

我們?cè)傩薷牡?1、3 號(hào)元素為 11,13 :

x[c(1,3)] <- c(11, 13); x

返回:

         若是下標(biāo)可重復(fù),又會(huì)如何,如:

x[c(1,3,1)]

返回:

2.負(fù)整數(shù)下標(biāo)

負(fù)下標(biāo)表示扣除相應(yīng)的元素后的子集,如

x <- c(1,4,6.25)
x[-2]

-2 表示倒數(shù)第二個(gè);返回:

再比如:

x[-c(1,3)]

返回:

負(fù)整數(shù)下標(biāo)不能與正整數(shù)下標(biāo)同時(shí)用來從某一向量中取子集,比如

x[c(1,-2)]

返回結(jié)果會(huì)報(bào)錯(cuò):

3.空下標(biāo)與零下標(biāo)

x[] 表示取 x 的全部元素作為子集。這與 x 本身不同,比如

x <- c(1,4,6.25)
x[]

返回:

然后,我們對(duì)x 內(nèi)的值進(jìn)行修改

x[] <- 999
x

返回:

再如,另一種對(duì)x內(nèi)的值進(jìn)行修改

x <- c(1,4,6.25)
x <- 999
x

返回結(jié)果只有一個(gè)值:

 可能有人會(huì)問是否有 x[0] ,那就讓我們看看

x[0]

返回:

那說明,x[0] 是一種少見的做法,結(jié)果返回類型相同、長(zhǎng)度為零的向量,如 numeric(0)。

相當(dāng)于空集;且當(dāng) 0 與正整數(shù)下標(biāo)一起使用時(shí)會(huì)被 忽略。當(dāng) 0 與負(fù)整數(shù)下標(biāo)一起使用時(shí)也會(huì)被 忽略。

4.下標(biāo)超界

設(shè)向量 x 長(zhǎng)度為 n , 則使用正整數(shù)下標(biāo)時(shí)下標(biāo)應(yīng)在 { 1 , 2 , . . . , n } 中取值。

x <- c(1,4,6.25)
x[2]

返回:

如果使用大于 n 的下標(biāo),讀取時(shí)返回缺失值,并不出錯(cuò)。

x[5]

返回:

超出 n 的下標(biāo)元素賦值,則向量自動(dòng)變長(zhǎng),中間沒有賦值的元素為缺失值。例如

x[5] <- 9 
x

返回:

雖然 R 的語法對(duì)下標(biāo)超界不視作錯(cuò)誤,但是這樣的做法往往來自不良的程序思路,而且對(duì)程序效率有影響,所以實(shí)際編程中應(yīng)避免下標(biāo)超界。

5.邏輯下標(biāo)

下標(biāo)可以是與向量等長(zhǎng)的邏輯表達(dá)式,一般是關(guān)于本向量或者與本向量等長(zhǎng)的其它向量的比較結(jié)果,如 定義x

x <- c(1,4,6.25)

取出 x 的大于 3 的元素組成的子集

x[x > 3]

返回:

邏輯下標(biāo)除了用來對(duì)向量取子集,還經(jīng)常用來對(duì)數(shù)據(jù)框取取子集,也用在向量化的運(yùn)算中。例如,對(duì)如下示性函數(shù)

輸入向量 x ,結(jié)果 y 需要也是一個(gè)向量,程序可以寫成

f <- function(x){
y <- numeric(length(x))
y[x >= 0] <- 1
y[x < 0] <- 0 # 此語句多余
y }

事實(shí)上還有一種寫法,向量化的邏輯選擇有一個(gè) ifelse() 函數(shù),比如,對(duì)上面的示性函數(shù),如果 x 是一個(gè)向量,輸出 y 向量可以寫成 

y <- ifelse(x>=0, 1, 0)

要注意的是,如果邏輯下標(biāo)中有缺失值,對(duì)應(yīng)結(jié)果也是缺失值,如

x <- c(1, 4, 6.25, NA)
x[x > 2]

返回:

所以,在用邏輯下標(biāo)作子集選擇時(shí),一定要考慮到缺失值問題。 正確的做法是加上!is.na 前提,如

x[!is.na(x) & x > 2]

返回:

6. which()、which.min()、which.max() 函數(shù)

函數(shù) which() 可以用來找到滿足條件的下標(biāo),如

x <- c(3, 4, 3, 5, 7, 5, 9)
which(x > 5)

返回:

seq(along=x) 會(huì)生成由 x 的下標(biāo)組成的向量,如

seq(along=x)[x > 5]

返回:

which.min()which.max() 求最小值的下標(biāo)和最大值的下標(biāo),不唯一時(shí)只取第一個(gè)。如

which.min(x)
which.max(x)

返回:

7. 元素名

向量可以為每個(gè)元素命名。如

ages <- c(" 李明"=30, " 張聰"=25, " 劉穎"=28)

ages <- c(30, 25, 28)
names(ages) <- c(" 李明", " 張聰", " 劉穎")

ages <- setNames(c(30, 25, 28), c(" 李明", " 張聰", " 劉穎"))

這時(shí)可以用元素名或元素名向量作為向量的下標(biāo),如

ages[" 張聰"]

返回:

 再如:

ages[c(" 李明", " 劉穎")]

返回:

再如,修改字符串?dāng)?shù)值:

ages[" 張聰"] <- 26

用字符串作為下標(biāo)時(shí),如果該字符串不在向量的元素名中,讀取時(shí)返回缺失值結(jié)果,賦值時(shí)該向量會(huì)增加一個(gè)元素并以該字符串為元素名。 帶有元素名的向量也可以是字符型或其它基本類型,如

sex <- c(" 李明"=" 男", " 張聰"=" 男", " 劉穎"=" 女")

除了給向量元素命名外,在矩陣和數(shù)據(jù)框中還可以給行、列命名,這會(huì)使得程序的擴(kuò)展更為容易和安全。 R 允許僅給部分元素命名,這時(shí)其它元素名字為空字符串。不同元素的元素名一般應(yīng)該是不同的,否則在使用元素作為下標(biāo)時(shí)會(huì)發(fā)生誤讀,但是 R 語法允許存在重名。 用 unname(x) 返回去掉了元素名的 x 的副本,用 names(x) <- NULL 可以去掉 x 的元素名。

8.用 R 向量下標(biāo)作映射

R 在使用整數(shù)作為向量下標(biāo)時(shí),允許使用重復(fù)下標(biāo),這樣可以把數(shù)組 x 看成一個(gè) 1 : n 的整數(shù)到 x[1] , x[2] , . . . , x[n] 的一個(gè)映射表 , 其中 n 是 x 的長(zhǎng)度。 比如,某商店有三種禮品,編號(hào)為 1,2,3 ,價(jià)格分別為 68, 88 和 168 。令

price.map <- c(68, 88, 168)

設(shè)某個(gè)收銀員在一天內(nèi)分別售出禮品編號(hào)為 3,2,1,1,2,2,3 ,可以用如下的映射方式獲得售出的這些禮品對(duì)應(yīng)的價(jià)格:

items <- c(3,2,1,1,2,2,3)
y <- price.map[items]
print(y)

返回:

R 向量可以用字符型向量作下標(biāo),字符型下標(biāo)也允許重復(fù),所以可以把帶有元素名的 R 向量看成是元素名到元素值的映射表。 比如,設(shè) sex 為 10 個(gè)學(xué)生的性別(男、女)

sex <- c(" 男", " 男", " 女", " 女", " 男", " 女", " 女", " 女", " 女", " 男")

希望把每個(gè)學(xué)生按照性別分別對(duì)應(yīng)到藍(lán)色和紅色。首先建立一個(gè) R 向量當(dāng)作映射

sex.color <- c(' 男'='blue', ' 女'='red')

用 R 向量 sex.color 當(dāng)作映射,可以獲得每個(gè)學(xué)生對(duì)應(yīng)的顏色

cols <- sex.color[sex]; print(cols)

返回:

這樣的映射結(jié)果中帶有不必要的元素名,用 unname() 函數(shù)可以去掉元素名,如

unname(cols)

返回:

9.集合運(yùn)算

可以把向量 x 看成一個(gè)集合,但是其中的元素允許有重復(fù)。用 unique(x) 可以獲得 x 的所有不同值。如

unique(c(1, 5, 2, 5))

返回:

 用 a %in% x 判斷 a 的每個(gè)元素是否屬于向量 x,如

5 %in% c(1,5,2)

返回:

c(5,6) %in% c(1,5,2)

返回

%in 運(yùn)算符類似,函數(shù) match(x, table) 對(duì)向量 x 的每個(gè)元素,從向量 table 中查找其首次出現(xiàn)位置并返回這些位置。沒有匹配到的元素位置返回NA_integer_( 整數(shù)型缺失值) 。如

 一個(gè)數(shù)值判斷:

match(5, c(1,5,2))

返回:

若所匹配集合有重復(fù)元素,則返回為第一個(gè)元素的下標(biāo):

match(5, c(1,5,2,5))

返回:

 若匹配兩個(gè)元素的所屬呢?

match(c(2,5), c(1,5,2,5))

返回:

 若所匹配元素中,有集合中沒有的呢?則返回空值,如

match(c(2,5,0), c(1,5,2,5))

返回:

 用 intersect(x,y)交集,結(jié)果中不含重復(fù)元素,如

intersect(c(5, 7), c(1, 5, 2, 5))

返回:

union(x,y) 并集,結(jié)果中不含重復(fù)元素,如

union(c(5, 7), c(1, 5, 2, 5))

返回:

  用 setdiff(x,y) 差集,即 x 的元素中不屬于 y 的元素組成的集合,結(jié)果中不含重復(fù)元素,如

setdiff(c(5, 7), c(1, 5, 2, 5))

 返回:

 用 setequal(x,y) 判斷兩個(gè)集合是否相等,不受次序與重復(fù)元素的影響,如

setequal(c(1,5,2), c(2,5,1))

 再如

setequal(c(1,5,2), c(2,5,1,5))

返回:

練習(xí) 

設(shè)文件 class.csv 內(nèi)容如下 :
name,sex,age,height,weight
Alice,F,13,56.5,84
Becka,F,13,65.3,98
Gail,F,14,64.3,90
Karen,F,12,56.3,77
Kathy,F,12,59.8,84.5
Mary,F,15,66.5,112
Sandy,F,11,51.3,50.5
Sharon,F,15,62.5,112.5
Tammy,F,14,62.8,102.5
Alfred,M,14,69,112.5
Duke,M,14,63.5,102.5
Guido,M,15,67,133
James,M,12,57.3,83
Jeffrey,M,13,62.5,84
John,M,12,59,99.5
Philip,M,16,72,150
Robert,M,12,64.8,128
Thomas,M,11,57.5,85
William,M,15,66.5,112
用如下程序可以把上述文件讀入為 R 數(shù)據(jù)框 d.class, 并取出其中的 name 和
age 列到變量 name 和 age 中:
d.class <- read.csv ( 'class.csv' , header= TRUE , stringsAsFactors= FALSE )
name <- d.class[, 'name' ]
age <- d.class[, 'age' ]
(1) 求出 age 中第 3, 5, 7 號(hào)的值;
(2) 用變量 age, 求出達(dá)到 15 歲及以上的那些值;
(3) 用變量 name 和 age, 求出 Mary 與 James 的年齡。
(4) 求 age 中除 Mary 與 James 這兩人之外的那些人的年齡值,保存到變量 age1 中。
(5) 假設(shè)向量 x 長(zhǎng)度為 n , 其元素是 { 1 , 2 , . . . , n } 的一個(gè)重排。可以把 x 看成一個(gè) i 到 x[i] 的映射 (i 在 { 1 , 2 , . . . , n } 中取值 ) 。求向量 y, 保存了上述映射的逆映射,即:如果 x[i]=j, 則 y[j]=i 。

到此這篇關(guān)于R語言向量下標(biāo)和子集的使用的文章就介紹到這了,更多相關(guān)R語言向量下標(biāo)和子集內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • R語言學(xué)習(xí)之基礎(chǔ)繪圖詳解

    R語言學(xué)習(xí)之基礎(chǔ)繪圖詳解

    這篇文章主要為大家詳細(xì)介紹了R語言中基礎(chǔ)繪圖的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下
    2023-03-03
  • R語言實(shí)現(xiàn)操作MySQL數(shù)據(jù)庫

    R語言實(shí)現(xiàn)操作MySQL數(shù)據(jù)庫

    這篇文章主要介紹了R語言實(shí)現(xiàn)操作MySQL數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • R語言繪圖大小設(shè)定的操作

    R語言繪圖大小設(shè)定的操作

    這篇文章主要介紹了R語言繪圖大小設(shè)定的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言運(yùn)算符知識(shí)點(diǎn)總結(jié)

    R語言運(yùn)算符知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于R語言運(yùn)算符知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-03-03
  • R語言入門教程之刪除指定數(shù)據(jù)的方法

    R語言入門教程之刪除指定數(shù)據(jù)的方法

    這篇文章主要介紹了R語言入門教程之刪除指定數(shù)據(jù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • R語言柱狀圖排序和x軸上的標(biāo)簽傾斜操作

    R語言柱狀圖排序和x軸上的標(biāo)簽傾斜操作

    這篇文章主要介紹了R語言柱狀圖排序和x軸上的標(biāo)簽傾斜操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 在R語言中實(shí)現(xiàn)Logistic邏輯回歸的操作

    在R語言中實(shí)現(xiàn)Logistic邏輯回歸的操作

    這篇文章主要介紹了在R語言中實(shí)現(xiàn)Logistic邏輯回歸的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言中na.fail和na.omit的用法

    R語言中na.fail和na.omit的用法

    這篇文章主要介紹了R語言中na.fail和na.omit的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • RStudio中如何更改R包安裝位置淺析

    RStudio中如何更改R包安裝位置淺析

    R語言提供了豐富的功能和擴(kuò)展包來支持各種任務(wù),默認(rèn)R語言會(huì)將安裝的擴(kuò)展包存儲(chǔ)在特定的目錄中,有時(shí)我們希望將這個(gè)默認(rèn)存儲(chǔ)路徑更改為其他位置,以便更好地組織和管理我們的包,這篇文章主要給大家介紹了關(guān)于RStudio中如何更改R包安裝位置的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • R語言日期時(shí)間的使用

    R語言日期時(shí)間的使用

    日期時(shí)間是常用的一種類型,本文主要介紹了R語言日期時(shí)間的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論

常德市| 班戈县| 马公市| 连城县| 兰州市| 额敏县| 曲靖市| 达孜县| 犍为县| 筠连县| 铜山县| 宁河县| 玉树县| 玛多县| 齐河县| 永嘉县| 吴忠市| 大邑县| 柘城县| 陆河县| 湖北省| 和平区| 洪雅县| 沂源县| 滨海县| 太康县| 托克逊县| 日喀则市| 东明县| 娄烦县| 工布江达县| 剑河县| 图们市| 嘉黎县| 阿坝| 罗城| 广昌县| 大厂| 呼伦贝尔市| 东安县| 娱乐|