R中是否区分字符向量和字符串?

4
据我所知,大多数编程语言称为字符串的内容,在R语言中被称为字符向量。例如,"Alice" 不是字符串,而是长度为1的字符向量。同样地, c("Alice", "Bob")是一个长度为2的字符向量。我记不清我的IDE或任何在与R类型系统相关的工作中告诉我R有任何内部概念“字符串”。
尽管如此,R的文档经常使用单词“string”:
  • ?paste?nchar 经常谈论“字符串”。
  • 许多“See Also”部分提到字符串而没有任何限定词,例如:?paste?chartr?agrep
  • ?strsplit提到“子字符串”。
  • ?agrep?toString?adist在它们的标题和“描述”部分都谈到了字符串。
  • strsplitstrwidthtoString在它们的名称中有字符串或其缩写。
因此,R是否实际上具有字符串的概念,还是始终意味着“字符向量”?

1
据我所知,如果他们说字符串,他们指的是长度为1的字符向量。 - Jonas
1
大多数编程语言也区分“标量”和“向量长度1”; 但R不区分。从用户角度来看,实际上并不存在标量。 - r2evans
1
R语言定义中的相关部分如下:R有六种基本(“原子”)向量类型:[...]字符串(或字符);字符串向量具有模式和存储模式“character”。字符向量的单个元素通常称为“字符串”。 - Henrik
@Henrik 我建议将其发布为答案。 - J. Mini
1个回答

2
将我的评论转化为回答。
R语言定义中可以找到有关character和字符串的描述:

R具有六种基本(“原子”)向量类型:逻辑型、整型、实型、复数型、字符串(或字符型)和原始型。不同向量类型的模式和存储模式列在下表中。

typeof mode storage.mode
logical logical logical
integer numeric integer
double numeric double
complex complex complex
character character character
raw raw raw

[...]

字符串向量的模式和存储模式为"character"。字符向量的单个元素通常被称为字符串

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接