使用 RStudio 中的列表自动完成代码

Code autocompletion with lists in RStudio

鉴于以下列表,我是否需要在更简洁的代码或自动完成之间做出选择,或者我可以两者兼而有之吗?我在 MacOS 10.10.5 上使用最新版本的 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

或者还有第三种可能,比如先把所有的代码都写成反引号,然后想办法自动用[[]]替换它们?

幸运的是,可以同时拥有自动完成和格式良好的代码。在 RStudio 中,自动完成适用于 $[[,但功能略有不同。

对于 $ 的索引,输入 $ 后会立即触发自动完成列表。

但是,对于 [[,需要在显示自动完成列表之前按 tab。这与 $.

一样在多个层次上起作用

上面 @docendo discimus 的评论对找到这个答案很有帮助。