R中是否可以互换"双"和"单"引号(总是)?

Ste*_*son 13 quotes r double-quotes single-quotes

这可能是一个小问题......

但就在不久之前,我正在查看我编写的一些代码,并注意到我倾向于使用="something"并且='something_else'完全可以互换,通常在同一个函数中.

所以我的问题是:是否有使用一个或其他(单引号或双引号)的R代码有不同的行为?或者他们完全是同义词?

Wal*_*cio 12

根据http://stat.ethz.ch/R-manual/R-patched/library/base/html/Quotes.html,"[s ]单引号和双引号分隔字符常量.它们可以互换使用但双引号首选(并且使用双引号打印字符常量),因此单引号通常仅用于分隔包含双引号的字符常量."

  • 我不同意“首选项”。这需要使用Shift键,这会减慢键入速度并增加手部压力。我始终建议使用“。”如果它们确实可互换,那对我来说就束手无策了。 (2认同)

use*_*1_G 10

> print(""hi"")
Error: unexpected symbol in "print(""hi"
> print("'hi'")
[1] "'hi'"
> print("hi")
[1] "hi"
Run Code Online (Sandbox Code Playgroud)

  • ......也是'打印('"喜"')`只是为了踢. (4认同)

YaO*_*OzI 6

出于好奇,R-help邮件列表中还有一个进一步的解释,说明为什么在R中首选双引号

为了避免对习惯于使用C语言家族(C,C ++,Java)进行编程的人造成混淆,在C语言家族中,单引号和双引号的含义有所不同。AC程序员将其读取'a'为单个字符,然后读取"a"由字母组成的字符串,'a'后跟一个null字符以终止该字符串。

在R中,没有字符数据类型,只有字符串。 为了与其他语言保持一致,如果用双引号分隔字符串,则将很有帮助。 为了方便起见,R中的单引号版本。

(因为)在大多数键盘上,您不需要使用Shift键来键入单引号,但是您需要使用Shift来输入双引号。