【问题标题】:How can I use the chain operator do calculation with itself in R?如何在 R 中使用链运算符自己进行计算?
【发布时间】:2016-02-09 11:07:34
【问题描述】:

我有一个函数,其中 x 介于 0 和 1 之间:

如何使用 dplyr 包中的链运算符 %>% 来做到这一点?

我尝试了以下方法:

x = 0.5
y <- (x-1)^2 %>% 1-. %>% sqrt()

但这是错误的!我怎样才能找到一种方法让链运算符自己进行计算?我这里只是一个小例子。我有一个很长的方程,想用链运算符使代码可读。

【问题讨论】:

  • 使用来自 magrittr 的链运算符。 (x-1)^2 %&gt;% { sqrt(1-.) }cran.r-project.org/web/packages/magrittr/vignettes/…
  • @Frank,谢谢! {} 就是解决方案!
  • computeY &lt;- function(x) { sqrt(1-(x-1)^2)) }
  • 或者:x %&gt;% "-"(1) %&gt;% "^"(2) %&gt;% "-"(.) %&gt;% "+"(1) %&gt;% sqrt?换句话说,我不认为管道真的会让你更复杂的例子更具可读性。
  • @xirururu 相信我,我说的不只是这次......

标签: r dplyr


【解决方案1】:

在 OP 似乎同意的情况下将我的评论提升为答案(并在此过程中删除虚假的 )):

computeY <- function(x) { sqrt(1-(x-1)^2) }

在提示符下也可以:

R> computeY <- function(x) { sqrt(1-(x-1)^2) }
R> sapply((1:5)/10, computeY)
[1] 0.435890 0.600000 0.714143 0.800000 0.866025
R> 

免责声明:此答案的制作过程中没有管道受到伤害。

【讨论】:

  • computeY((1:5)/10) 在这种情况下有效(而不是 sapply)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
相关资源
最近更新 更多