string - 为什么在R中“优先于”

标签 string r

来自help("'")


单引号和双引号分隔字符常量。可以使用
可以互换,但最好使用双引号(和字符)
常数使用双引号打印),因此单引号是
通常仅用于定界包含double的字符常量
引号。


如果它们可以互换,为什么首选双引号?在我自己的用法上,我还没有发现它们之间的区别。令人惊讶的是混合字符向量是允许的:

> c("a",'b',"c")
[1] "a" "b" "c"


编辑

我真的在这里问两个问题:


在什么情况下'"的行为会有所不同?
如果不是,为什么习惯上选择"作为首选版本?


到目前为止,答案与(2)有关,但(1)至少与之相关。

最佳答案

我不知道单引号与双引号不同的任何情况。我认为优先选择是出于可读性,并避免单引号与反引号的潜在混淆,反引号的处理方式有所不同。对于湿件中的眼脑系统来说,很难找到与单引号配对的不匹配的反勾号。

> `newfn` <- function() {}
> newfn
function() {}
> "newfn" <- function() {}
> newfn
function() {}
> 'newfn' <- function() {}
> newfn
function() {}
> var <- c(`a`, "b", 'c')
Error: object 'a' not found
> var <- c( "b", 'c')
> var
[1] "b" "c"
> a <- 1
> identical(`a`, a)
[1] TRUE


因此,对于名称分配,它们(s引号,d引号和反引号)在function的LHS分配中均以相同的方式处理,但是未引用的a和反引号a在命令行上相同,并且与引用的“ a”或“ a”不同。

可能存在差异的另一种情况是数据输入。人名可能用单引号引起来,在这种情况下,您可能不想查看read.table函数对两种不同类型引号的处理。默认情况下,它使用两种类型的引号,但是可能有必要通过设置quote="\""来“关闭”单引号的引号操作,以免将大块数据错误地变成单个文本字段。 count.fields函数的默认值与read.table相同,因此使用它进行初步运行以检查由单引号不匹配引起的行缩短是有意义的:

 table( count.fields('filnam.ext') )

关于string - 为什么在R中“优先于”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13638123/

相关文章:

javascript - 无法对从 div 检索到的字符串进行切片

python - 从(古代)SAS 版本 6(适用于 Python/R)读取 .ssd01 数据文件

删除数字前的模式并保留这些数字

r - 实现 Izhikevich 神经元模型

r - R shiny 中的 Cron 作业 - shinyapps io 中的 Shiny 任务计划

r - 获取提取的单词的上下文

c - 字符串赋值的类型不完整

java - 在java中对字符串进行排序

c# - 为单行文本生成缩进字符串

xml - readHTMLTable 和 UTF-8 编码