首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将倒计时应用于.Primitive名称的向量

如何将倒计时应用于.Primitive名称的向量
EN

Stack Overflow用户
提问于 2014-08-04 03:02:47
回答 1查看 138关注 0票数 0

有没有办法将倒计时应用于.Primitive函数名的向量,以便能够安全地传递给is.primitive

目前,我在get(x)中使用x作为is.primitive(x)。这些第一批电话,

代码语言:javascript
复制
> is.primitive(`$`)
#[1] TRUE
> is.primitive(get("$"))
#[1] TRUE

才是对的。接下来所有的电话都打不通。

代码语言:javascript
复制
> is.primitive("$")
#[1] FALSE
## which is a bit confusing considering the argument name in
> `$`
#.Primitive("$")
##----
## other tries ...
> is.primitive($)
#Error: unexpected '$' in "is.primitive($"
> is.primitive("`$`")
#[1] FALSE
> is.primitive(`"$"`)
#Error in is.primitive(`"$"`) : object '"$"' not found
> sQuote("$")
#[1] "‘$’"
> is.primitive(sQuote("$"))
#[1] FALSE
> as.name("$") ## most promising! ...
#`$`
> is.primitive(as.name("$")) ## ...but no
#[1] FALSE

我之所以这样做,是因为我想使用以下方法对package:base中的对象执行一些分析

代码语言:javascript
复制
Vis.primitive <- Vectorize(is.primitive)

我将要使用的向量x

代码语言:javascript
复制
x <- ls("package:base")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-04 03:16:45

阅读函数式编程的帮助是值得的。

(?Map/?Filter)

这给出了如何使用Filter来执行此类分析的示例。

你可以做这样的事

Filter(is.primitive, sapply(ls(baseenv()), get, baseenv()))

另一种选择是使用match.fun搜索函数。

例如

match.fun('$')

没有必要和`混在一起!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25111230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档