我为一家小型非营利组织工作,试图查看人口普查数据以指导我们的工作。因为我必须查看一堆不同的人口普查表,寻找趋势,我很乐意自动化,因为任务是相同的,我只是更改表名。
这是我到目前为止所做的:
变量块
#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)
它没有,我不知道如何以我希望的方式评估它。
任何帮助将不胜感激。