隐藏ls()结果中的函数名称 – 更快地查找变量名称
发布时间:2020-12-14 01:35:14 所属栏目:Linux 来源:网络整理
导读:当我们定义了数十个函数 – 可能是为了开发一个新的包 – 很难通过ls()命令找出许多函数名中特定变量的名称. 在大多数情况下,我们不是在寻找函数名称 – 我们已经知道它们存在 – 但我们想要找到我们为变量赋予的名称. 任何解决它的想法都非常感谢. 解决方法
当我们定义了数十个函数 – 可能是为了开发一个新的包 – 很难通过ls()命令找出许多函数名中特定变量的名称.
在大多数情况下,我们不是在寻找函数名称 – 我们已经知道它们存在 – 但我们想要找到我们为变量赋予的名称. 任何解决它的想法都非常感谢. 解决方法
如果你想要一个函数来做这个,你需要在ls()查找的环境中玩一下.在正常使用中,下面的实现将通过在函数的父框架中列出对象来工作,这将是如果在顶层调用全局环境.
lsnofun <- function(name = parent.frame()) { obj <- ls(name = name) obj[!sapply(obj,function(x) is.function(get(x)))] } > ls() [1] "bar" "crossvalidate" "df" [4] "f1" "f2" "foo" [7] "lsnofun" "prod" > lsnofun() [1] "crossvalidate" "df" "f1" [4] "f2" "foo" "prod" 我写了这个,所以你可以传入ls()的name参数,如果你需要在一系列嵌套函数调用中调用这种方式. 还要注意,当我们测试它们是否是函数时,我们需要得到()ls()命名的对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |