gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 13:29:34 32 4
gpt4 key购买 nike

来自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/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com