R表达式和as.表达式之间的区别

标签 r

好吧,这就是我所做的:

D(expression(x^2),"x")
# 2 * x
D(as.expression(x^2),"x")
# [1] 0
class(as.expression(x^2))
# [1] "expression"
class(expression(x^2))
# [1] "expression"

那么,为什么结果不同呢?我想 R 处理这些事情的方式略有不同,我想了解到底是如何处理的。如果您知道的话,也非常欢迎一本涵盖这些细微差别的 R 手册。

最佳答案

如果您已定义x作为全局环境中的数字,当您使用 as.expression(x^2) 时该函数将尝试转换 x 的内容而不是表达式的名称。

参见:

x = 1
as.expression(x^2)
# expression(1)

所以当你运行 D(as.expression(x^2), "x") 时你实际上正在运行 D(expression(1), "x")这是零。

关于R表达式和as.表达式之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34393256/

相关文章:

r - 使用谷歌的邮政编码距离

r - Rcpp 中如何使用 noNA?

r - 在ggplot2中叠加多边形并使叠加透明

r - 按组数过滤data.table

r - 根据 ID 列拆分表,将重复行移动到新表中

r - 将表达式传递给 data.table 中的嵌套分组

r - qplot 因数条件

r - 如何在 knitr 中隐藏来自 ggplot 的消息

r - 理解水平: is levels not same as unique()

r - 获取一个点(栅格)距离内的单元格数量