选择功能的dplyr错误?

问题描述

我一直在数据集上使用R的dplyr包,但是由于某些原因,select函数不断给出未使用参数的错误。以前工作过的函数和其他函数似乎存在相同的问题,即select会在正确指定的函数上报告相同的错误。是否有其他选择可供选择,或者该错误如何解决?我无法取消安装并重新安装dplyr,直到它再次正确安装为止。功能

df %>% 
  group_by(ID) %>% 
  slice(start = 1,end = (which.max(Var1)-1)) %>% 
  top_n(n = 1,wt = Var2) %>% 
  select(ID,Var2)

有没有办法替代这里的选择?预先感谢

解决方法

这可能是由掩蔽问题引起的。也就是说,您正在使用的其他软件包具有相同名称的功能(“选择”),因此,如果您未指定要使用的软件包,R将选择最新定义的名称。

您可以重现此错误的非常常见的示例:

library(dplyr)
library(stats)

df <- tibble(A = c(1,2,3),B = c(4,5,6))

query <- filter(df,df$A > 2)

这将引发错误,因为我们正尝试使用dplyr过滤器功能,并且被stats过滤器功能屏蔽。

有多种方法可以避免此问题,但是最快,最简单的解决方案是在调用函数之前指定软件包。

使用此:

df%>% 
group_by(ID) %>% 
slice(start = 1,end = (which.max(Var1)-1)) %>% 
top_n(n = 1,wt = Var2) %>% 
dplyr::select(ID,Var2)

请注意,其他函数可能会遇到同样的问题,因此应考虑始终指定与要调用的函数关联的程序包。当然,在某些情况下,这不一定是最佳做法,但这超出了此问题的范围。