这应该很容易,但是当我运行时:
require(dplyr)
data.frame(a = c(1,1,1,2,2,2), b= c(1,2,3,4,5,6)) %>%
group_by(a) %>%
slice(-1:-2)
Run Code Online (Sandbox Code Playgroud)
期待data.frame(a = c(1,2), b = c(3,6)),我收到以下错误:
Error in UseMethod("slice") :
no applicable method for 'slice' applied to an object of class "c('grouped_df', 'tbl_df', 'tbl', 'data.frame')"
Run Code Online (Sandbox Code Playgroud)
真的没什么可添加的 - 根据这里的所有帐户和答案,这应该是正确的解决方案。任何人都可以帮忙吗?
这可能是由于在slice加载其他包时屏蔽了其他包的功能而导致的问题。例如,如果我们使用xgboost::slice
data.frame(a = c(1,1,1,2,2,2), b= c(1,2,3,4,5,6)) %>%
group_by(a) %>%
xgboost::slice(-1:-2)
Run Code Online (Sandbox Code Playgroud)
UseMethod("slice") 中的错误:没有适用于应用于类 "c('grouped_df', 'tbl_df', 'tbl', 'data.frame') 的对象的 'slice' 的方法
而是指定 dplyr::slice
data.frame(a = c(1,1,1,2,2,2), b= c(1,2,3,4,5,6)) %>%
group_by(a) %>%
dplyr::slice(-1:-2)
# A tibble: 2 x 2
# Groups: a [2]
# a b
# <dbl> <dbl>
#1 1 3
#2 2 6
Run Code Online (Sandbox Code Playgroud)
或者在仅dplyr加载的新会话中执行此操作