使用管道(%>%)operatror链接dplyr操作时出错

时间:2018-03-10 19:27:35

标签: r dplyr magrittr

管道运营商似乎不像下面概述的以下操作中所宣传的那样工作:

library("dplyr")
library("tibble")

我无法通过R中的代码自动执行,但是下载740行,32列excel文档,然后保存为" rus18.csv"在你的工作目录中,然后将其保存为" rus18.csv"在您的工作目录中将允许此代码工作

path = "https://www.opm.gov/policy-data-oversight/pay-leave/salaries-wages/2018/2018-general-schedule-pay-rates.xls"

以tibble的形式读取文件:

rus18 <- as_tibble(read.csv("rus18.csv"))

验证dplyr操作是否单独工作。以下两行做同样的事情:

filter(rus18, LOCNAME == "RUS") 
rus18 %>% filter(LOCNAME == "RUS") 

与这两个相同:

select(rus18, starts_with("HOURLY")) 
rus18 %>% select(starts_with("HOURLY"))

但是将它们放在一起会在filter_impl(.data,dots)中出现&#34;错误:object&#39; LOCNAME&#39;找不到&#34;

rus17 %>% select(starts_with("HOURLY"))  %>% filter(LOCNAME == "RUS")

1 个答案:

答案 0 :(得分:2)

当您将这两个列链接起来时,您不再拥有列LOCNAMEselect调用仅保留名称以"HOURLY"开头的列,因此当然没有更多列可用于检查值"RUS"

尝试这种方式:

rus17 %>% filter(LOCNAME == "RUS") %>% select(starts_with("HOURLY"))