使用R变量构造表名和函数

时间:2017-06-12 16:36:23

标签: r automation

我为一家小型非营利组织工作,试图查看人口普查数据以指导我们的工作。因为我必须查看一堆不同的人口普查表,寻找趋势,我很乐意自动化,因为任务是相同的,我只是更改表名。

这是我到目前为止所做的:

变量块

 #table specific variables 
importpath <-paste("C:/Users/DataNerd/OneDrive/",
                   "censusdata/",
                   sep = "")

#columns to keep from larger table
focuscolumns <- c("GEO.id2", "HC01_EST_VC01", "HC02_EST_VC01")

#years to focus on from the acs data
acsyear <- c("15", "14", "13", "12")

#Name of the ACS table 
acstablename <- "S1701"

#data naming variables
datanames <- c("poverty", "rate", etc...) 

因此,当我从检查贫困率普查表到不合标准住房的人口普查表时,上面的变量块是我想要改变的唯一代码块。

使用这些变量我可以走得很远。

#create the table name                    
tablefile <- paste("ACS_", acsyear[1], "_5YR_", acstablename, sep = "")

#import data
tableA<-          read_csv(paste(importpath,
                                   tablefile,
                                   "/",
                                   tablefile, 
                                   ".csv",
                                   sep = ""))


ACS15 <- subset(tableA, select = focuscolumns)


tablefile <- paste("ACS_", acsyear[2], "_5YR_", acstablename, sep = "")

tableA<-          read_csv(paste(importpath,
                                 tablefile,
                                 "/",
                                 tablefile, 
                                 ".csv",
                                 sep = ""))

ACS14 <- subset(tableA, select = focuscolumns)

我遇到的问题是使用变量块创建名称和函数。为了获得贫困率,我需要在我的focuscolumns变量中将一列除以另一列。

这是我认为可行的。

paste0('ACS', acsyear[1], datanames[1]) <- mutate( paste0("ACS", acsyear[1],                                         
paste0("ACS",acsyear[1],datanames[1],datanames[2]) = focuscolumns[3]/ focuscolumns[2]
    ))

通过R的魔力,我认为代码应该评估为:

ACS15poverty <- mutate(ACS15,
                       ACS15povertyrate = HC02_EST_VC01/HC01_EST_VC01)

它没有,我不知道如何以我希望的方式评估它。

任何帮助将不胜感激。

0 个答案:

没有答案