【发布时间】:2020-04-17 18:02:03
【问题描述】:
我有带有列的数据框。我想返回一个通过多个条件从原始数据框过滤掉的子数据框。我的第一个问题是我想按两列过滤:一列包含离散值,我想过滤包含值“Open”的行。另一列包含日期值,我想复合过滤等于给定日期的行
这是我的过滤功能,使用 dplyr
agendaReq <- function(recTable, agendaDate)
{
openTable <- filter(recTable, recTable$reqStatus == "Open")
agendaTable <- filter(openTable, recTable$reqDate == agendaDate)
return (agendaTable)
}
但是,当我在我的服务器中调用此函数时,如下所示
agendaToShow <- agendaReq(recordTable_CA, Sys.Date())
我收到了这个错误
Warning: Error in : Result must have length 14, not 16
56: <Anonymous>
Error : Result must have length 14, not 16
原始数据框中有 16 行。正确的过滤器应该给我 14 行。但是这个错误是什么意思呢?
最后,对于离散变量和连续变量的混合,我该如何做同样的事情? (比如,根据性别、身高等进行过滤……)
谢谢
【问题讨论】:
-
不要在 dplyr 动词函数中使用
recTable$,直接使用列名。在dplyr.tidyverse.org 阅读教程和小插曲可能会有所帮助。 -
See here 提出一个人们可以帮助解决的 R 问题。这包括数据样本和所有必要的代码。
-
感谢来源。我去看看。