如何解决哪个.min on tibbles

Jef*_*ght 2 r which dataframe dplyr tibble

/ R-福利局.我的which.min调用在我的数据帧的列上工作正常,但在加载dplyr which.min不再有效.是因为df现在是一个tibble?任何解决方法?

> which.min(Analytic_traces_raw[,1]) #********************WORKS FINE HERE**
[1] 1
> library(dplyr)

Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
    filter, lag
The following objects are masked from ‘package:base’:
    intersect, setdiff, setequal, union

> which.min(Analytic_traces_raw[,1]) #*********************NOW IT'S BROKEN**
Error in which.min(Analytic_traces_raw[, 1]) : 
  (list) object cannot be coerced to type 'double'

> head(Analytic_traces_raw[,1]) #**TYPE IS DBL, BUT TIBBLE TROUBLE**?
# A tibble: 6 x 1
  `t_Pur23Mar18_TP7-24`
                  <dbl>
1              0.000417
2              0.00375 
3              0.00708 
4              0.0104  
5              0.0138  
6              0.0171  
Run Code Online (Sandbox Code Playgroud)

jor*_*ran 5

这并不是which.min"打破"它是因为"破坏"了R中的默认行为.通常,对于数据框架,Analytic_traces_raw[,1]将丢弃尺寸并成为矢量.tibbles改变了这种行为,因此期望"正常"行为的R函数将会中断.试试Analytic_traces_raw[[1]]:

library(dplyr)
which.min(mtcars[,1])
[1] 15
> mtcars_tbl <- as_tibble(mtcars)
> which.min(mtcars_tbl[,1])
Error in which.min(mtcars_tbl[, 1]) : 
  (list) object cannot be coerced to type 'double'
> which.min(mtcars_tbl[[1]])
[1] 15
Run Code Online (Sandbox Code Playgroud)