第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

R語言初級(jí)教程(18): 列表

標(biāo)簽:
Java

webp

R中的数据结构

在这篇博客,你将学习如何在R中使用列表(list)。之前我们提过,列表可包含不同类型的元素,比如数字、字符串、向量、矩阵,甚至列表中也可包含另一个列表。后面你将会知道,数据框(data frame)也是一种列表,只是比较特殊而已。

接下来,你将学习如何创建、访问、修改以及删除列表中的元素

1. 创建列表

在R中,一般用list()函数来创建列表,来看个例子:

> items <- list(a=c(1, 4, 7), b=c('apple', 'orange'), c=3)
> items
$`a`
[1] 1 4 7$b
[1] "apple"  "orange"$c
[1] 3

可以用str()函数来了解其内部结构:

> str(items)
List of 3
 $ a: num [1:3] 1 4 7
 $ b: chr [1:2] "apple" "orange"
 $ c: num 3

其中a, bc是各元素的名称(标签),通过它们可以很方便地访问元素。然而,我们也可以不要标签,这种情况下,默认用数字来做索引。

> items2 <- list(c(1, 4, 7), c('apple', 'orange'), 3)
> items2
[[1]]
[1] 1 4 7[[2]]
[1] "apple"  "orange"[[3]]
[1] 3

此外,我们可以通过is.list()typeof()函数来判断某个变量是否为列表,通过length()函数来获得其长度。

> is.list(items)
[1] TRUE> typeof(items)
[1] "list"> length(items)  ##含有3个元素[1] 3

2. 访问列表

类似于向量,列表的访问也可以利用整数、逻辑以及字符向量来索引,比如:

> items <- list(a=c(1, 4, 7), b=c('apple', 'orange'), c=3)
> items[c(1, 3)]   ##通过正整数向量来索引$`a`
[1] 1 4 7$c
[1] 3> items[-3]   ##通过负整数来排除第3个元素$`a`
[1] 1 4 7$b
[1] "apple"  "orange"> items[c(TRUE, FALSE, TRUE)]  ##使用逻辑向量来索引$`a`
[1] 1 4 7$c
[1] 3> items[c('b', 'c')]   ##使用字符向量来索引$`b`
[1] "apple"  "orange"$c
[1] 3

从上面知道,[ ]返回的还是一个列表,没有返回元素的内容。我们可以使用[[ ]]来获取元素的内容,比如:

> items['a']  ##单个[]返回的还是列表$`a`
[1] 1 4 7> typeof(items['a'])
[1] "list"> items[['a']]  ##两个[]返回具体内容[1] 1 4 7> typeof(items[['a']])
[1] "double"

我们也可以用$操作符来获取内容,其功能基本上与[[ ]]相同,不过$还支持部分匹配标签,比如:

> x <- list(a=c(1, 4, 7), bbb=c('apple', 'orange'), c=3)
> x$bbb
[1] "apple"  "orange"> x$b     ##支持部分匹配,结果与x$bb, x$bbb相同[1] "apple"  "orange"> x[['b']]   ##不支持部分匹配NULL> x$bbb[1]  ##结合[ ]获取元素内部具体内容[1] "apple"> x$bbb[2]  ##结合[ ]获取元素内部具体内容[1] "orange"

3. 修改列表

类似于向量,利用赋值运算可进行列表元素的修改,比如:

> x$c <- FALSE   ##或者x[['c']] <- FALSE> x
$`a`
[1] 1 4 7$bbb
[1] "apple"  "orange"$c
[1] FALSE

添加元素也很容易,比如:

> x[['d']] <- c('one', 'two', 'three')  ##或者x$d <-  c('one', 'two', 'three')> x
$`a`
[1] 1 4 7$bbb
[1] "apple"  "orange"$c
[1] FALSE$d
[1] "one"   "two"   "three"

最后讲一下如何删除列表中的元素,可通过将相应元素赋值为NULL来删除元素,比如:

> x$a <- NULL> str(x)List of 4
 $ bbb: chr [1:2] "apple" "orange"
 $ c  : logi FALSE
 $ d  : chr [1:3] "one" "two" "three"> x[['bbb']] <- NULL> str(x)List of 2
 $ c: logi FALSE
 $ d: chr [1:3] "one" "two" "three"



作者:R语言和Python学堂
链接:https://www.jianshu.com/p/4475649287b4


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消