【问题标题】:Assign variable to be used in filename分配要在文件名中使用的变量
【发布时间】:2014-05-20 12:20:48
【问题描述】:

我正在尝试使用宏观经济数据构建一个程序,只需更改一行代码,我就可以在不同的国家/地区运行该程序。

我想分配类似的东西:

countrycode <- "UK"

我的数据矩阵列标记为 GDP_UK、GDP_FR、GDP_DE、...、FDI_UK、FDI_FR、FDI_DE...、UN_UK、UN_Fr 等。我想分配如下内容:

gdp <- ts(Data[,c("GDP_UK")], frequency=4, start=c(1971,1), end=c(2013,4))

但我不想使用“GDP_UK”,而是使用“GDP_countrycode”。在 Eviews 中,这将是一个 'for i=... do something' 循环。我注意到循环在这里不是很受欢迎,但我看不出还有什么可以工作的。我的数据矩阵的组成可以改变,所以我不想创建一个包含所有国家代码的向量(一旦我改变数据矩阵就会很乱)。相反,我想将国家代码从英国更改为法国,并让我的程序为法国而不是英国运行。如何将变量“countrycode”放入我的 ts 命令中?

【问题讨论】:

  • country &lt;- paste("GDP", countrycode, sep="_"); gdp &lt;- ts(Data[ ,country], ...?
  • 将矩阵更改为list,每个元素的名称都是国家代码?然后您可以在不影响现有数据的情况下将新的国家代码(和相关数据)添加到列表中,您可以通过 ts(Data$pick_a_code,...) 选择所需的项目
  • @CarlWitthoft:这可能有问题,因为我每个国家都有几个变量。所以我不能只分配国家代码。目前它们被命名为 Variable_countrycode。罗兰:谢谢,那行得通!但它有点乱,我必须为我的数据集中的每个变量创建一个“国家”变量,然后再次删除它们。每个变量 3 行代码。但它完成了工作! :-)

标签: r loops assign


【解决方案1】:

正如 Roland 指出的,您可以使用 paste 命令构建字符串来识别列名

varname <- "GDP"
countrycode <- "UK"
columnname <- paste(varname, countrycode, sep="_");

然后您可以像使用常规字符串一样提取它

gdp <- ts(Data[,columnname], frequency=4, start=c(1971,1), end=c(2013,4))

【讨论】:

  • 完美。如何使用它来创建具有此变量的新命名元素?如:data_"countrycode"
  • @user3468631 数据[, paste("data", countrycode, sep="_")]
  • 这似乎试图与数据矩阵一起工作。我想创建一个新对象(例如向量 c(1,2))。为简单起见称它为测试?
  • @user3468631 与其在 cmets 中提出新问题,如果您需要其他帮助,请发布新问题以便其他人提供帮助。
猜你喜欢
  • 1970-01-01
  • 2012-11-11
  • 1970-01-01
  • 2015-04-27
  • 1970-01-01
  • 1970-01-01
  • 2018-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多