问题描述
我一直在数据集上使用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)
请注意,其他函数可能会遇到同样的问题,因此应考虑始终指定与要调用的函数关联的程序包。当然,在某些情况下,这不一定是最佳做法,但这超出了此问题的范围。