pmin()与R中的dplyr

时间:2017-11-05 13:55:48

标签: r dplyr

这是一个相当简单的问题。出于某种原因,当使用数据帧进行管道传输时,pmin()函数不起作用。见下文:

library(dplyr)
data(mtcars)
pmin(mtcars$am, mtcars$gear)
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1
mtcars %>% pmin(am, gear)
Error in pmin(., am, gear): object 'am' not found
Traceback:

1. mtcars %>% select(am, gear) %>% pmin(am, gear)
2. withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
3. eval(quote(`_fseq`(`_lhs`)), env, env)
4. eval(quote(`_fseq`(`_lhs`)), env, env)
5. `_fseq`(`_lhs`)
6. freduce(value, `_function_list`)
7. withVisible(function_list[[k]](value))
8. function_list[[k]](value)
9. pmin(., am, gear)

我缺少什么?您的建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

出错的地方是管道运算符将数据帧作为第一个参数传递。所以你试图运行pmin(select(mtcars,am, gear), am, gear)

正如Nate的评论所暗示的,mtcars%>%with(pmin(am, gear))可以做你想要的。

此外,对Marco的评论略有修改。 mtcars%>%transmute(pmin(am,gear))%>%pull