UseMethod中的错误(" mutate _"):没有适用于' mutate _'的方法适用于类"功能"的对象

时间:2017-10-18 14:55:29

标签: r

我正在尝试运行一个循环,该循环将在2002年至2010年的多个地铁统计区域的一个大型数据框架中编制劳工统计局就业数据。

当我运行循环时,我收到以下错误,我不确定为什么会发生这种情况。有人有什么想法吗?

Error in UseMethod("mutate_") : 
  no applicable method for 'mutate_' applied to an object of class "function"

这是我这个小项目的完整代码。

library(tidyverse)
library(blscrapeR)

msa <- read.delim("https://raw.githubusercontent.com/smitty1788/Personal-Website/master/dl/MSA_Codes.txt",
                header = FALSE) %>% 
  rename(area_code = V2, area_text = V3) %>% 
  select(area_code, area_text) %>% 
  mutate(CBSA_ID = substr(area_code, 5, 9))

MSA_LAUS <- data.frame(date = character(),
                       labor_force = numeric(),
                       employment = numeric(),
                       unemployment = numeric(),
                       unemployment_rate = numeric(),
                       CBSA_ID = character(),
                       area_text = character())

for (i in 1:395) {

  labor_force <- paste0("LAU", msa$area_code[i], "06")
  employment <- paste0("LAU", msa$area_code[i], "05")
  unemployment <- paste0("LAU", msa$area_code[i], "04")
  unemployment_rate <- paste0("LAU", msa$area_code[i], "03")

  series_id <- tibble(
    name = c("labor_force", "employment", "unemployment", "unemployment_rate"),
    id = c(labor_force, employment, unemployment, unemployment_rate)
  )


  laus <- bls_api(seriesid = c(labor_force, employment, unemployment, unemployment_rate), 
                  startyear = 2002, endyear = 2010, 
                  registrationKey = **"YOUR BLS API KEY"**) %>%
    mutate(seriesID = as.character(seriesID)) %>% 
    merge(series_id, by.x = 'seriesID', by.y = 'id', all.x = TRUE) %>%
    filter(!is.na(name)) %>% 
    select(year, periodName, name, value) %>% 
    spread(name, value = value) %>% 
    mutate(date = as.Date(paste0(year, " ", periodName, " ", "01"), '%Y %B %d'),
           CBSA_ID = msa$CBSA_ID[i],
           area_text = msa$area_text[i]) %>% 
    select(date, labor_force, employment, unemployment, unemployment_rate, CBSA_ID, area_text)

  MSA_LAUS <- rbind(MSA_LAUS, laus)
  rm(laus)
}

0 个答案:

没有答案