簡體   English   中英

如何使列名稱/數據框名稱成為包含變量的字符串(R)

[英]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年的數據xy來每年運行代碼。

如果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不會對引號內的任何表達式求值-它只會打印您定義的字符串。 但是如何解決這個問題,以便字符串中可以有一個變量?

幫助將不勝感激!

您可以使用pastepaste0sprintf的函數根據字符串常量和變量構造字符串。 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM