小编Joh*_*ohn的帖子

R dplyr 列作为变量

请你帮助我好吗。

我已经尝试了很多组合,但没有任何效果。

这里的例子:

library(dplyr)

foo <- function(AA,x){
  mn <- make.names(x)
  mn <- enquo(mn)
  filter(AA,mn==min(!!mn))
}

aa <- data.frame(A=c("a","b","c","d"), B.D = c(1,2,1,3))

foo(aa,"B D")

Run Code Online (Sandbox Code Playgroud)

输出是

 Error: Base operators are not defined for quosures.
Do you need to unquote the quosure?

  # Bad:
  myquosure == rhs

  # Good:
  !!myquosure == rhs
Run `rlang::last_error()` to see where the error occurred. 
Run Code Online (Sandbox Code Playgroud)

代替

filter(aa,B.D==min(B.D))

  A B.D
1 a   1
2 c   1
Run Code Online (Sandbox Code Playgroud)

您能帮我使用我的函数获得所需的输出吗?

谢谢你。

约翰

r filter dplyr

2
推荐指数
1
解决办法
50
查看次数

R 中的计算错误

我注意到,以下检查在R中给出FALSE

(1000*0.6/24)==(1000*(0.6/24))

[1] FALSE
Run Code Online (Sandbox Code Playgroud)

后续地板功能给出了不同的结果:

floor(1000*0.6/24)
[1] 25

floor(1000*(0.6/24))
[1] 24
Run Code Online (Sandbox Code Playgroud)

这种不一致对于我的代码来说至关重要。

有人有关于如何防止这种行为的解释和提示吗?

谢谢。

此致,

约翰

r floor

1
推荐指数
1
解决办法
151
查看次数

标签 统计

r ×2

dplyr ×1

filter ×1

floor ×1