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)
这并不是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)