【发布时间】:2018-04-17 18:09:01
【问题描述】:
这是一个相当简单的问题。由于某种原因,当使用数据帧进行管道传输时,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)
我错过了什么?我们将不胜感激您的建议。
【问题讨论】:
-
来自文档:“将一个或多个 vectors 作为参数”
-
试试这个:
mtcars %>% mutate(pmin = pmin(am,gear)) -
或使用
with()作为管道助手,mtcars %>% with(pmin(am, gear)) -
@rf7 如果我的帖子回答了您的问题,请您将其标记为答案。