33

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

但就在刚才,我正在查看我编写的一些代码,并注意到我倾向于只使用="something"='something_else'完全互换,通常在同一个函数中。

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

4

3 回答 3

21

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

于 2013-12-13T17:29:14.333 回答
16

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

为了避免那些习惯于使用 C 系列语言(C、C++、Java)编程的人感到困惑,因为单引号和双引号的含义有所不同。AC 程序员读取'a'为单个字符和"a"由字母组成的字符串,'a'后跟一个null字符以终止字符串。

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

(Since) 在大多数键盘上,您不需要使用 shift 键来输入单引号,但您确实需要 shift 来输入双引号。

于 2018-07-17T15:23:26.870 回答
14
> print(""hi"")
Error: unexpected symbol in "print(""hi"
> print("'hi'")
[1] "'hi'"
> print("hi")
[1] "hi"
于 2013-12-13T17:29:30.467 回答