相关疑难解决方法(0)

用于访问列表或数据框元素的方括号[]和双括号[[]]之间的区别

R提供了两种不同的方法来访问列表或data.frame- [][[]]运算符的元素.

两者有什么区别?在什么情况下我应该使用一个而不是另一个?

r extract list dataframe r-faq

490
推荐指数
10
解决办法
21万
查看次数

R语言识别代码重新格式化/重构工具?

最近我发现自己在编码风格方面使用了R代码 - 多个作者和个人作者,他们并不严格遵守单一结构.有些任务我想比现在更好地自动化.

我正在寻找一种管理以下任务的工具(或多种工具) - 按照欲望的增加顺序列出,但也有点依赖于存在的怀疑主义.

  • 基本格式.比如将"if(foo)"转换为"if(foo)"并在支撑位置和类似物方面实现一致性.

  • 将"foo $ blah"转换为"foo [["blah"]]"以获取列表访问权限.理想情况下,它至少可以猜测一个对象是否真的是一个列表而不是data.frame并且只能转换列表.

  • 将'='转换为'< - '.是的,这是一个简单的搜索和替换 - 但不是真的.工具(或regexp)需要具有语言感知能力,以便它知道转换"x = 5"而不是"foo(x = 5)".不仅简单地替换符号而且确保赋值运算符两侧的单个空格也是非常好的.

  • 变量重命名,特别是跨功能和文件.例如,假设一个列表有一个元素"foo",我希望能够将它改为"foobar"一次,而不必在整个代码流中追踪该列表的每个用法.我想这将需要该工具能够进行整个控制流程,以便识别诸如在不同函数中作为另一个名称存在的列表之类的事物.

  • 命名约定.我希望能够定义一些标准的命名约定(例如Google或其他)并让它识别所有函数,变量等并转换它们.请注意,这与列表元素之类的内容相关联.

随意列出基本的unix处理命令(例如sed),只要它真的足够智能,至少通常不会搞砸(例如将"foo(x = 5)"转换为"foo(x <-5)" ").

我猜测,如果这样的工具,我会听到它的一个完美的状态现在已经存在了,而且我也意识到,与如R语言,很难做一些这些类型的变化的自动的,但是人们可以做梦吧?有没有人对这些/所有这些有指针?

refactoring r automated-refactoring

27
推荐指数
1
解决办法
1373
查看次数