【问题标题】:Convert string to variable name in R在R中将字符串转换为变量名
【发布时间】:2016-04-26 10:35:33
【问题描述】:

我花了几个小时寻找合适的解决方案,但在 Internet 上一无所获。有我的问题。在 R 中,我有一个特定的字符列表,其中包含我想要的变量名称(“2011_Q4”、“2012_Q1”、...)。当我尝试使用循环为每个名称分配一个数据集时,它确实有效,但输出很奇怪。确实,我有

> View(`2011_Q4`)

而不是

> View(2011_Q4)

而且我不知道如何删除这个撇号。这很烦人,因为我必须输入这个 ` 才能调用变量。

有人可以帮助我吗?我会很感激他的帮助。

非常感谢和最好的问候

【问题讨论】:

  • 命名约定(有效对象名称的规则)! stackoverflow.com/questions/9195718/…
  • 你好,你能发布你用来分配变量的代码吗?
  • 当然,非常感谢您帮助我。我尝试了很多东西,但是... for (i in 1:1){ assign(list[i],read.csv(file.path("given path", list[i]), header=T, stringsAsFactors= F, sep=";")) } 因为名称在列表中
  • 输入反引号有什么问题?我不认为这是一个很大的烦恼(事实上,这在我的代码中很常见)。
  • 因为这些是 R 中的规则。变量名称必须以字母或点开头,它们不能以数字开头。很简单。

标签: r string variables type-conversion


【解决方案1】:

首先,它是一个反引号 (`),而不是撇号 (')。在 R 中,反引号偶尔表示变量名;撇号用作表示字符串的单引号。

您遇到的问题是您的变量以数字开头,这在 R 中是不允许的。既然您无论如何都让它发生了,您需要使用反引号告诉 R 不要将 2011_Q4 解释为数字,但作为一个变量。

来自?Quotes

名称和标识符

标识符由一系列字母、数字、句点 (.) 和下划线。它们不能以数字或下划线开头, 也不是句点后跟一个数字。保留字无效 标识符。

字母的定义取决于当前的语言环境,但仅限于 ASCII 数字被认为是数字。

此类标识符也称为句法名称,可以使用 直接在R代码中。几乎总是可以使用其他名称,前提是 他们被引用。首选引号是反引号 (`),并且 deparse 通常会使用它,但在许多情况下单或双 可以使用引号(因为字符常量通常会转换为 一个名字)。反引号可能必不可少的一个地方是分隔 公式中的变量名:见公式。

解决问题的最佳方法是将变量名称更改为以字符开头的名称,例如Y2011_Q4.

【讨论】:

  • 亲爱的 alistaire, 非常感谢您的精彩评论和 cmets。这对我帮助很大。对于这种混乱,我深表歉意,但我们非常欢迎您的建议。有一个愉快的下午和最好的问候
猜你喜欢
  • 1970-01-01
  • 2011-08-27
  • 2010-12-04
  • 2015-08-13
  • 2019-09-01
  • 1970-01-01
  • 2011-03-24
相关资源
最近更新 更多