[英]How to make column names/ dataframe names a string with a variable in it (R)
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
的當前年份並讓代碼更新過去2年的數據x
和y
來每年運行代碼。
如果this.year
是2015, x
是2014, xs
為14, y
是2013, ys
是13最終的結果我想是(對於y)處的數據幀名稱tpop_13
與列名DM_TPOP_13
。 (對於x而言)數據框名稱tpop_14
和列名稱DM_TPOP_14
。
該代碼是正確抽取所需要的數據,但這個代碼返回(對於y)處的數據幀名稱tpop_y.s
與列名DM_TPOP_y.s
。 (對於x而言)數據框名稱tpop_x.s
和列名稱DM_TPOP_x.s
。 我嘗試搜索類似的問題,並發現了以下問題: 如何在字符串中間打印R變量
我嘗試通過使用引號\\"',xs,'\\"
來應用答案來解決我的問題,但是它不起作用。 代碼返回(對於x)列名DM_TPOP_...xs..
我知道R不會對引號內的任何表達式求值-它只會打印您定義的字符串。 但是如何解決這個問題,以便字符串中可以有一個變量?
幫助將不勝感激!
您可以使用paste
, paste0
和sprintf
的函數根據字符串常量和變量構造字符串。 gsubfn軟件包中還有功能可以像字符串插值一樣執行Perl。
工作方法如下:將數據存儲在列表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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.