2016-10-19 45 views
0

鑑於以下列表,是否需要在更簡潔的代碼或自動完成之間進行選擇還是可以同時使用?我在MacOS 10.10.5上使用最新版本的RStudio。在RStudio中使用列表的代碼自動完成

> l <- list() 
> l$`__a` <- data.frame(`__ID` = stringi::stri_rand_strings(10, 1), col = stringi::stri_rand_strings(10, 1), check.names = F) 
> l$`__b` <- data.frame(`__ID` = stringi::stri_rand_strings(10, 1), col = stringi::stri_rand_strings(10, 1), check.names = F) 
> l$`__c` <- data.frame(`__ID` = stringi::stri_rand_strings(10, 1), col = stringi::stri_rand_strings(10, 1), check.names = F) 

自動完成,但隨着反引號符號(不乾淨,更難以編程方式操作):

> l$`__a` 
    __ID col 
1  i u 
2  4 V 
3  b Y 
4  j B 
5  k d 
6  Z Q 
7  T H 
8  f A 
9  j Y 
10 k P 

隨着[運營商和字符串(更乾淨,更容易編程方式操作,但沒有自動完成) :

> l[["__a"]] 
    __ID col 
1  i u 
2  4 V 
3  b Y 
4  j B 
5  k d 
6  Z Q 
7  T H 
8  f A 
9  j Y 
10 k P 

或者還有第三種可能性,例如首先用反向符號寫所有代碼然後findi一種方法可以自動將它們替換爲[[]]

+1

自動完成也適用於[[''提取。輸入:'l'(對象名稱),然後'[['並點擊標籤按鈕 –

回答

1

幸運的是,它可能同時具有自動完成和良好格式的代碼。在RStudio中,自動完成適用於$[[,但它的功能稍有不同。

對於使用$建立索引,在鍵入$後立即觸發自動完成列表。

但是,對於[[,必須在顯示自動完成列表之前按tab。這與多個層次的深度一樣,與$一樣。

@docendo discimus上面的評論有助於找到答案。