this.year<-2014
x<-this.year-1
y<-this.year-2
x.s<-x-2000
y.s<-y-2000
tpop_y.s<-acs.fetch(endyear=x,span=1,geography=mystates,variable="B01003_001", col.names="DM_TPOP_x.s")
tpop_x.s<-acs.fetch(endyear=y,span=1,geography=mystates,variable="B01003_001",col.names="DM_TPOP_y.s")
我正在使用软件包acs
从美国社区调查中提取数据来更新一个信息图表网站。我希望通过在this.year
中输入当前年度并拥有过去两年的代码更新数据( x
和y
)来运行代码。
如果this.year
是2015年,x
是2014年,x.s
是14,y
是2013年,y.s
是13。我想要的最终结果是( y)列名为DM_TPOP_13
的数据帧名tpop_13
。(用于x)具有列名tpop_14
的数据帧名DM_TPOP_14
。
代码正在正确地提取所需的数据,但此代码返回(对于y)列名为tpop_y.s
的数据帧名DM_TPOP_y.s
。(用于x)具有列名tpop_x.s
的数据帧名DM_TPOP_x.s
。我试着寻找类似的问题,并发现了这个问题:How to print R variables in middle of String
我试着用引号\"',x.s,'\"
来解决我的问题,但是它不起作用。代码返回( x)列名DM_TPOP_...x.s...
。我知道R不计算引号中的任何表达式-它只是打印您定义的字符串。但是如何才能绕过这个问题,使字符串中有一个变量呢?
我们将非常感谢您的帮助!
发布于 2015-05-27 16:22:43
下面是如何工作的方法:将数据存储在列表kk
中,以便第一个元素kk[[1]]
或kk[["tpop_13"]]
给出2013年的数据,第二个元素kk[[2]]
或kk[["tpop_12"]]
提供2012年的数据,每个元素的名称都是您建议的。
wa=geo.make(state="WA")
kk<-lapply(c(x,y),function(i){
acs.fetch(endyear=i,span=1,geography=wa,variable="B01003_001", col.names=paste0("DM_TPOP_",i-2000))
})
names(kk)<-paste0("tpop_",c(x-2000,y-2000))
kk
$tpop_13
ACS DATA:
2013 ;
Estimates w/90% confidence intervals;
for different intervals, see confint()
DM_TPOP_13
Washington 6971406 +/- 0
$tpop_12
ACS DATA:
2012 ;
Estimates w/90% confidence intervals;
for different intervals, see confint()
DM_TPOP_12
Washington 6897012 +/- 0
发布于 2015-05-27 15:56:04
可以使用paste
、paste0
和sprintf
等函数从字符串常量和变量构造字符串。gsubfn包中也有类似于字符串内插的Perl功能。
https://stackoverflow.com/questions/30487130
复制相似问题