在R中使用过滤器功能,但收到错误消息

在R中使用过滤器功能,但收到错误消息,r,dplyr,plyr,R,Dplyr,Plyr,这是我的数据帧,我原来的数据帧要大得多,但这只是一个示例: df<-structure(list(ind = structure(c(16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16

这是我的数据帧,我原来的数据帧要大得多,但这只是一个示例:

df<-structure(list(ind = structure(c(16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 
16437, 16437, 16437, 16437, 16437, 16437, 16437, 16437, 16440, 
16440, 16440, 16440, 16440, 16440, 16440, 16440, 16440, 16440, 
16440, 16440, 16440, 16440, 16440, 16440, 16440, 16440, 16440, 
16440, 16440, 16440, 16440, 16440, 16440, 16440, 16440, 16440, 
16440, 16440), class = "Date"), date = structure(c(17810, 17831, 
17852, 17873, 17894, 17915, 17936, 17957, 17978, 17999, 18020, 
18041, 18062, 18083, 18104, 18125, 18146, 18167, 18188, 18209, 
18230, 18251, 18272, 18293, 18314, 18335, 18356, 18377, 18398, 
18419, 18440, 18461, 18482, 18503, 18524, 18545, 18566, 18587, 
18608, 18629, 18650, 18671, 18692, 18713, 18734, 18755, 18776, 
18797, 18818, 18839, 18860, 18881, 18902, 18923, 18944, 18965, 
18986, 19007, 19028, 19049, 19070, 19091, 19112, 19133, 19154, 
19175, 19196, 19217, 19238, 19259, 19280, 19301, 19322, 19343, 
19364, 19385, 19406, 19427, 19448, 19469, 19490, 19511, 19532, 
19553, 19574, 19595, 19616, 19637, 19658, 19679, 19700, 19721, 
19742, 19763, 19784, 19805, 19826, 19847, 19868, 19889, 19910, 
19931, 19952, 19973, 19994, 20015, 20036, 20057, 20078, 20099, 
20120, 20141, 20162, 20183, 20204, 20225, 20246, 20267, 20288, 
20309, 17810, 17831, 17852, 17873, 17894, 17915, 17936, 17957, 
17978, 17999, 18020, 18041, 18062, 18083, 18104, 18125, 18146, 
18167, 18188, 18209, 18230, 18251, 18272, 18293, 18314, 18335, 
18356, 18377, 18398, 18419), class = "Date"), m = c(21L, 42L, 
63L, 84L, 105L, 126L, 147L, 168L, 189L, 210L, 231L, 252L, 273L, 
294L, 315L, 336L, 357L, 378L, 399L, 420L, 441L, 462L, 483L, 504L, 
525L, 546L, 567L, 588L, 609L, 630L, 651L, 672L, 693L, 714L, 735L, 
756L, 777L, 798L, 819L, 840L, 861L, 882L, 903L, 924L, 945L, 966L, 
987L, 1008L, 1029L, 1050L, 1071L, 1092L, 1113L, 1134L, 1155L, 
1176L, 1197L, 1218L, 1239L, 1260L, 1281L, 1302L, 1323L, 1344L, 
1365L, 1386L, 1407L, 1428L, 1449L, 1470L, 1491L, 1512L, 1533L, 
1554L, 1575L, 1596L, 1617L, 1638L, 1659L, 1680L, 1701L, 1722L, 
1743L, 1764L, 1785L, 1806L, 1827L, 1848L, 1869L, 1890L, 1911L, 
1932L, 1953L, 1974L, 1995L, 2016L, 2037L, 2058L, 2079L, 2100L, 
2121L, 2142L, 2163L, 2184L, 2205L, 2226L, 2247L, 2268L, 2289L, 
2310L, 2331L, 2352L, 2373L, 2394L, 2415L, 2436L, 2457L, 2478L, 
2499L, 2520L, 21L, 42L, 63L, 84L, 105L, 126L, 147L, 168L, 189L, 
210L, 231L, 252L, 273L, 294L, 315L, 336L, 357L, 378L, 399L, 420L, 
441L, 462L, 483L, 504L, 525L, 546L, 567L, 588L, 609L, 630L)), row.names = c(NA, 
-150L), class = c("grouped_df", "tbl_df", "tbl", "data.frame"
), vars = "ind", drop = TRUE, indices = list(0:119, 120:149), group_sizes = c(120L, 
30L), biggest_group_size = 120L, labels = structure(list(ind = structure(c(16437, 
16440), class = "Date")), row.names = c(NA, -2L), class = "data.frame", vars = "ind", drop = TRUE))

df这对我很有用。在运行以下代码之前,需要重新启动R会话

库(dplyr)
df%>%
过滤器(m==“21”| m==“63”| m==“126”| m==“189”)%>%
排列(m)
#或
df%>%
过滤器(m%在%c中(21,63,126,189)%>%
排列(m)
#>#tibble:8 x 3
#>#组:ind[2]
#>ind date m
#>             
#> 1 2015-01-02 2018-10-06    21
#> 2 2015-01-05 2018-10-06    21
#> 3 2015-01-02 2018-11-17    63
#> 4 2015-01-05 2018-11-17    63
#> 5 2015-01-02 2019-01-19   126
#> 6 2015-01-05 2019-01-19   126
#> 7 2015-01-02 2019-03-23   189
#> 8 2015-01-05 2019-03-23   189
如果我们只加载
plyr
包,我们将收到与OP相同的错误消息

库(magrittr)
图书馆(plyr)
df%>%
过滤器(m==“21”| m==“63”| m==“126”| m==“189”)%>%
排列(m)
#>筛选器中出现错误(,m==“21”| m==“63”| m==“126”| m==“189”):未找到对象“m”

由(v0.2.1.9000)于2018-09-21创建的尝试用
df$m=
@Fábio替换
m=
当我执行
bf$m
排列错误(过滤器(df,df$m='21?;df$m='63?;df$m='126?:is.data.frame(df)时,我有这个消息不正确
df$m列不是数字列,对吗?也许你需要加载dplyr?还有另一个函数名为filter。@Frank是对的。我认为OP可能使用了
plyr
包而不是
dplyr
也可以简化这里的过滤器调用:
filter(m%in%c(21,63,126,189)
@JayAchar:你说得对。我怎么能忘记这一点:)
df<-arrange(filter(df, m =="21"|m=="63"|m=="126"|m=="189"),m)

Error in is.data.frame(df) : object 'm' not found