这可能是一个很小的问题......
但就在刚才,我正在查看我编写的一些代码,并注意到我倾向于只使用="something"
和='something_else'
完全互换,通常在同一个函数中。
所以我的问题是:是否存在使用一个或其他(单引号或双引号)具有不同行为的 R 代码?还是它们完全是同义词?
这可能是一个很小的问题......
但就在刚才,我正在查看我编写的一些代码,并注意到我倾向于只使用="something"
和='something_else'
完全互换,通常在同一个函数中。
所以我的问题是:是否存在使用一个或其他(单引号或双引号)具有不同行为的 R 代码?还是它们完全是同义词?
根据http://stat.ethz.ch/R-manual/R-patched/library/base/html/Quotes.html,“[s]单引号和双引号分隔字符常量。它们可以互换使用,但双引号是首选(并且字符常量使用双引号打印),因此单引号通常仅用于分隔包含双引号的字符常量。”
只是出于好奇,在 R-help 邮件列表中有进一步解释为什么在 R 中首选双引号:
为了避免那些习惯于使用 C 系列语言(C、C++、Java)编程的人感到困惑,因为单引号和双引号的含义有所不同。AC 程序员读取
'a'
为单个字符和"a"
由字母组成的字符串,'a'
后跟一个null
字符以终止字符串。在 R 中没有字符数据类型,只有字符串。 为了与其他语言保持一致,如果字符串用双引号分隔会很有帮助。 R 中的单引号版本是为了方便。
(Since) 在大多数键盘上,您不需要使用 shift 键来输入单引号,但您确实需要 shift 来输入双引号。
> print(""hi"")
Error: unexpected symbol in "print(""hi"
> print("'hi'")
[1] "'hi'"
> print("hi")
[1] "hi"