首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为函数参数的Tilde算子

作为函数参数的Tilde算子
EN

Stack Overflow用户
提问于 2021-08-24 15:17:40
回答 1查看 171关注 0票数 0

我看到了这个巧妙的例子,我想知道倾斜的东西是如何工作的:

代码语言:javascript
复制
plot_ly(
    x = ~gdpPercap, 
    y = ~lifeExp, 
    size = ~pop, 
    color = ~continent, 
    frame = ~year, 
    text = ~country, 
    hoverinfo = "text",
    type = 'scatter',
    mode = 'markers'
)

我的意思是我得到了它所做的事情(在dataframe中选择同名的列),但是这个操作符实际上是做什么的呢?倾斜后标识符的性质是什么(它不是变量,不是litteral,…)?这是专为诡计的吗?

我在R中看到了关于tilde操作符的文档,但是它似乎与这个特定的用途无关。

最后,如果dataframe中的列名包含“-”或“/”等字符,那么语法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-24 15:51:11

正如@r2evans在评论中所说,它被用来创建一个公式。这是一种快速的方法来做两件事:记录一点R语言而不对其进行评估,并将创建它的环境与结果关联起来。

不同之处在于使用它的函数是如何使用公式对象的。例如,基R中的lm()函数表示,倾斜体左侧的表达式被视为响应,而右边的表达式则编码解释性变量。

plot_ly使用它的原因是它所使用的名称(gdpPercap等)。不需要成为当前全局环境中可见的变量,它们可以是来自data参数的列。这个论点是第一位的,所以对于管道,你可以这样说

代码语言:javascript
复制
df <- data.frame(a=1:10)
b <- rnorm(10)
df %>% plot_ly(x = ~a, y = ~b)   # incomplete example...

它可以在a中查找df,在全球环境中查找b

至于你的最后一个问题,你可以把非句法名称放在后面。

代码语言:javascript
复制
`a/b` <- 3
`a/b`
# [1] 3
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68909904

复制
相关文章

相似问题

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