r - 如何过滤掉R中的项目
问题描述
我意识到这可能很简单,但我在网上找到的结果比我拥有的要复杂得多,因此失去了我。在学习R的过程中,此时,创建一个简单的折线图。在制作图表之前,我需要过滤掉数据中的值。我正在寻找月度数据(周期类型 = '03')而不是年度数据(周期类型 = '01')。下面是我正在使用的代码和我收到的错误。我的数据框 labforce 包含两种周期类型。关于我应该如何处理这个问题的任何想法?
con <- dbConnect(odbc::odbc(),"xyz-DB")
> labforce1 <- dbGetQuery(con, "SELECT periodyear,period,unemprate
FROM labforce")
labforce1m <- labforce1 %>%
+ filter (periodtype=='03')
Error in UseMethod("filter_") :
no applicable method for 'filter_' applied to an object of class
"logical"
dput(head(labforce1)) yields the following:
structure(list(periodyear = c("1990", "1990", "1990", "1990",
"1990", "1990"), periodtype = c("03", "03", "03", "03", "03",
"03"), period = c("01", "02", "03", "04", "05", "06"), unemprate =
c(8.9,
8.8, 8.6, 7, 4.6, 5.8), date = structure(c(7305, 7336, 7364,
7395, 7425, 7456), class = "Date")), row.names = c(NA, 6L), class =
"data.frame")
>
解决方案
从聊天中,问题在于 OP 正在从其他人的论文中复制文本。该代码包括 R 的“行继续+
”指示符,如
> labforce1 %>%
+ filter(periodtype=='03')
因为关于 SO 的许多问题都包括因为提问者从他们的 R 控制台复制了它,所以可以安全地假设这是控制台的一个属性,而不是输入的实际代码。但是,在这种情况下,它实际上是输入的 (粘贴)有效地
labforce1 %>% + filter(periodtype=='03')
对于我们正在尝试做的事情,这显然不是有效的 R 语法。
底线:+
从论文、脚本或类似文件中粘贴代码时,删除(以及任何其他类似的行继续指示符)。
labforce1 %>%
filter(periodtype == '03')
(这就是为什么许多 reprex 工具使用清晰的技术来区分代码和输出的原因之一,例如删除行继续标记和在所有输出前加上#
.)
推荐阅读
- .htaccess - Htaccess 删除 .php 并重定向特定的 URL
- airflow - 如何从“关闭”的 dags 中停止 Airflow 运行任务
- ios - 来自 IQKeyboardManager 的完成按钮操作在 Swift 中不起作用
- javascript - 找不到 React 模块:无法解析 '../utils/api'
- django - django celery SQS “没有配置结果后端。”
- machine-learning - CNN中内核大小与输入大小之间的关系
- web-services - 如何从 SOAP 响应中删除特定的 xmlns:ns
- nix - 如何在家庭管理器中使用覆盖从不稳定安装 jbake
- javascript - vue 选择组件 - 设置默认道具?
- javascript - Kendo UI Grid - 动态添加/删除过滤器