标识符由字母,数字,点号 (.) 和下划线构成。它们不能以 数字和下划线开始,也不能以点号后面跟数字开始。
字母的定义依赖于本地的环境:合法字符的精确集合由 C 表达式
(isalnum(c) || c == '.' || c == '_') 给定,并且在许多
西欧的本地环境中还包括重音符号。
注意,以点号开头的标识符默认不被ls函数列出,
并且 ..., ..1 和
..2 等是比较特殊的。
同样需要注意的是,对象可以有不是标识符的名字。这些
通常通过get 和 assign读取,尽管它们在一些
不会混淆的情况下(很少出现)可以用文本字符串表示(如"x" <- 1)。
因为 get 和 assign 没有要求它们所赋的名字一定是标识符,
所以它们不能区分下标操作和赋值函数。下面两个例子
不是 等价的
x$a<-1assign("x$a",1)x[[1]]get("x[[1]]")names(x)<-nmassign("names(x)",nm)