R语言中单引号、双引号与反引号的区别及使用疑问
R语言单引号、双引号与反引号的区别
单引号(')与双引号(")
- 二者功能完全一致,都是用来定义字符串的,选哪种全凭个人编码习惯。
- 示例:
str1 <- "我是R新手" str2 <- '我是R新手' # str1和str2完全等价 - 当字符串本身包含其中一种引号时,用另一种引号包裹可以避免转义,更简洁:
# 字符串里有单引号,用双引号包裹 str3 <- "I'm learning R" # 字符串里有双引号,用单引号包裹 str4 <- 'She said "R is fun"'
反引号(`)
- 它和前两者完全不同,不是用来定义字符串的,核心作用是处理不符合R命名规则的对象名称(变量、函数、列名等)。
- R的默认命名规则:只能以字母/下划线开头,后续可跟字母、数字、下划线,不能有空格、特殊符号,也不能是R的保留字(比如
if、else、function)。反引号就是用来打破这个规则的:- 示例1:创建带空格的变量
# 必须用反引号,直接写my var会报错 `my var` <- 20 print(`my var`) # 输出20 - 示例2:用保留字当变量名
# 直接写if <- 10会报错 `if` <- 10 print(`if`) # 输出10 - 示例3:处理带特殊符号的列名(比如在数据框中)
df <- data.frame(`user age` = c(18,22), `score%` = c(90,85)) # 引用这类列名时也需要反引号 df$`user age`
- 示例1:创建带空格的变量
- 另外在tidyverse系列包(比如dplyr)的语法中,反引号常用来引用特殊列名,避免语法错误。
内容的提问来源于stack exchange,提问作者Newbie_X
相关产品推荐
相关产品推荐

