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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

用于訪問(wèn)列表或數(shù)據(jù)框元素的方括號(hào)[]和雙括號(hào)[[]]之間的區(qū)別

用于訪問(wèn)列表或數(shù)據(jù)框元素的方括號(hào)[]和雙括號(hào)[[]]之間的區(qū)別

慕桂英3389331 2019-05-29 17:06:05
用于訪問(wèn)列表或數(shù)據(jù)框元素的方括號(hào)[]和雙括號(hào)[[]]之間的區(qū)別R提供了兩種不同的方法來(lái)訪問(wèn)列表或data.frame- []和[[]]運(yùn)算符的元素。兩者有什么區(qū)別?在什么情況下我應(yīng)該使用一個(gè)而不是另一個(gè)?
查看完整描述

3 回答

?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊

兩種方法之間的顯著差異是它們?cè)谟糜谔崛r(shí)返回的對(duì)象類,以及它們是否可以接受一系列值,或者在賦值期間只接受一個(gè)值。

考慮以下列表中的數(shù)據(jù)提取案例:

foo <- list( str='R', vec=c(1,2,3), bool=TRUE )

假設(shè)我們想從foo中提取bool存儲(chǔ)的值并在if()語(yǔ)句中使用它。這將說(shuō)明它們用于數(shù)據(jù)提取的返回值[][[]]何時(shí)之間的差異。該[]方法返回類列表的對(duì)象(如果foo是data.frame,則[[]]返回data.frame),而方法返回其類由其值的類型確定的對(duì)象。

因此,使用該[]方法會(huì)導(dǎo)致以下結(jié)果:

if( foo[ 'bool' ] ){ print("Hi!") }Error in if (foo["bool"]) { : argument is not interpretable as logical

class( foo[ 'bool' ] )[1] "list"

這是因?yàn)樵?code>[]方法返回了一個(gè)列表,而一個(gè)列表不是有效的對(duì)象,而是直接傳遞給一個(gè)if()語(yǔ)句。在這種情況下,我們需要使用,[[]]因?yàn)樗鼘⒎祷卮鎯?chǔ)在'bool'中的“裸”對(duì)象,該對(duì)象將具有適當(dāng)?shù)念悾?/p>

if( foo[[ 'bool' ]] ){ print("Hi!") }[1] "Hi!"class( foo[[ 'bool' ]] )[1] "logical"

第二個(gè)區(qū)別在于,[]操作員可以用于訪問(wèn)數(shù)據(jù)幀中列表或列中的一系列時(shí)隙,而[[]]操作員僅限于訪問(wèn)單個(gè)插槽或列??紤]使用第二個(gè)列表進(jìn)行值賦值的情況bar()

bar <- list( mat=matrix(0,nrow=2,ncol=2), rand=rnorm(1) )

假設(shè)我們想要用bar中包含的數(shù)據(jù)覆蓋foo的最后兩個(gè)插槽。如果我們嘗試使用[[]]運(yùn)算符,則會(huì)發(fā)生以下情況:

foo[[ 2:3 ]] <- bar
Error in foo[[2:3]] <- bar : more elements supplied than there are to replace

這是因?yàn)?code>[[]]僅限于訪問(wèn)單個(gè)元素。我們需要使用[]

foo[ 2:3 ] <- bar
print( foo )$str[1] "R"$vec     [,1] [,2][1,]    0    0[2,]    0    0$bool[1] -0.6291121

請(qǐng)注意,雖然賦值成功,但foo中的插槽保留了原始名稱。


查看完整回答
反對(duì) 回復(fù) 2019-05-29
?
DIEA

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊

雙括號(hào)訪問(wèn)列表元素,而單個(gè)括號(hào)返回一個(gè)包含單個(gè)元素的列表。


lst <- list('one','two','three')


a <- lst[1]

class(a)

## returns "list"


a <- lst[[1]]

class(a)

## returns "character"


查看完整回答
反對(duì) 回復(fù) 2019-05-29
  • 3 回答
  • 0 關(guān)注
  • 2068 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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