Quotes
位於 base
包(package)。 說明
引用的各種用途的說明R.
細節
三種類型的引號是語法的一部分R:單引號和雙引號以及反引號(或反引號,‘`’)。此外,反斜杠用於轉義字符常量中的後續字符。
字符常量
單引號和雙引號分隔字符常量。它們可以互換使用,但首選雙引號(並且使用雙引號打印字符常量),因此單引號通常僅用於分隔包含雙引號的字符常量。
反斜杠用於在字符常量內開始轉義序列。轉義下表中沒有的字符是錯誤的。
單引號在單引號字符串中需要用反斜杠轉義,在雙引號字符串中需要用雙引號轉義。
'\n’ | 換行符(又名“換行符”) |
'\r’ | 回車 |
'\t’ | tab |
'\b’ | backspace |
'\a’ | 警報(響鈴) |
'\f’ | 換頁 |
'\v’ | 垂直製表符 |
'\\’ | 反斜杠‘\’ |
'\'’ | ASCII 撇號 ‘′’ |
'\”’ | ASCII 引號 ‘”’ |
'\`’ | ASCII 重音符號(反引號)‘`’ |
'\nnn’ | 具有給定八進製代碼的字符(1、2 或 3 位數字) |
'\xnn’ | 具有給定十六進製代碼的字符(1 或 2 個十六進製數字) |
'\unnnn’ | 具有給定代碼的 Unicode 字符(1--4 十六進製數字) |
'\Unnnnnnnnn’ | 具有給定代碼的 Unicode 字符(1--8 十六進製數字) |
最後兩個的替代形式是‘\u{nnnn}' 和 '\U{nnnnnnnn}’。讀取字符串時,除了 Unicode 轉義序列之外的所有序列都受支持scan
和read.table
如果allowEscapes = TRUE
。 Unicode 轉義可用於輸入不在當前區域設置的字符集中的 Unicode 字符(當字符串將以 UTF-8 內部存儲時)。 ‘的最大允許值\nnn' 是 '\377’(與‘相同的字符\xff’)。
來自R4.1.0 允許的最大‘\U' 值為 '\U10FFFF’,最大 Unicode 點。
解析器不允許在單個字符串中同時使用八進製/十六進製和 Unicode 轉義。
print.default
在輸出不可打印字符(包括反斜杠)時也會使用這些形式。
字符串中不允許嵌入 NULL,因此使用轉義符(如 ‘\0’) 對於 nul 將導致字符串在該點被截斷(通常會出現警告)。
原始字符常量也可以使用類似於 C++ 中使用的語法來獲取:r"(...)"
和...
任何字符序列,但它不能包含結束序列‘)“’。分隔符對[]
和{}
也可以使用,並且R
可以用來代替r
。為了提高靈活性,可以在開始引號和開始分隔符之間放置多個破折號,隻要結束分隔符和結束引號之間出現相同數量的破折號即可。
名稱和標識符
標識符由一係列字母、數字、句點 (.
) 和下劃線組成。它們不能以數字或下劃線開頭,也不能以句點後跟數字開頭。 Reserved 單詞不是有效標識符。
字母的定義取決於當前區域設置,但隻有 ASCII 數字被視為數字。
此類標識符也稱為句法名稱並且可以直接用於R代碼。幾乎總是可以使用其他名稱,隻要它們被引用即可。首選引號是反引號(‘`'), 和deparse
通常會使用它,但在許多情況下可以使用單引號或雙引號(因為字符常量通常會轉換為名稱)。反引號可能必不可少的一個地方是在公式中分隔變量名稱:請參閱formula
.
注意
‘中的 UTF-16 代理對\unnnn\uoooo' 形式將被轉換為單個 Unicode 點,例如 '\uD834\uDD1E' 給出單個字符 '\U1D11E’。但是,代理項範圍內的未配對值(例如字符串中的值)"abc\uD834de"
將被轉換為不符合標準的 UTF-8 字符串(正如大多數其他軟件所做的那樣):這可能會在將來發生變化。
例子
'single quotes can be used more-or-less interchangeably'
"with double quotes to create character vectors"
## Single quotes inside single-quoted strings need backslash-escaping.
## Ditto double quotes inside double-quoted strings.
##
identical('"It\'s alive!", he screamed.',
"\"It's alive!\", he screamed.") # same
## Backslashes need doubling, or they have a special meaning.
x <- "In ALGOL, you could do logical AND with /\\."
print(x) # shows it as above ("input-like")
writeLines(x) # shows it as you like it ;-)
## Single backslashes followed by a letter are used to denote
## special characters like tab(ulator)s and newlines:
x <- "long\tlines can be\nbroken with newlines"
writeLines(x) # see also ?strwrap
## Backticks are used for non-standard variable names.
## (See make.names and ?Reserved for what counts as
## non-standard.)
`x y` <- 1:5
`x y`
d <- data.frame(`1st column` = rchisq(5, 2), check.names = FALSE)
d$`1st column`
## Backslashes followed by up to three numbers are interpreted as
## octal notation for ASCII characters.
"\110\145\154\154\157\40\127\157\162\154\144\41"
## \x followed by up to two numbers is interpreted as
## hexadecimal notation for ASCII characters.
(hw1 <- "\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21")
## Mixing octal and hexadecimal in the same string is OK
(hw2 <- "\110\x65\154\x6c\157\x20\127\x6f\162\x6c\144\x21")
## \u is also hexadecimal, but supports up to 4 digits,
## using Unicode specification. In the previous example,
## you can simply replace \x with \u.
(hw3 <- "\u48\u65\u6c\u6c\u6f\u20\u57\u6f\u72\u6c\u64\u21")
## The last three are all identical to
hw <- "Hello World!"
stopifnot(identical(hw, hw1), identical(hw1, hw2), identical(hw2, hw3))
## Using Unicode makes more sense for non-latin characters.
(nn <- "\u0126\u0119\u1114\u022d\u2001\u03e2\u0954\u0f3f\u13d3\u147b\u203c")
## Mixing \x and \u throws a _parse_ error (which is not catchable!)
## Not run:
"\x48\u65\x6c\u6c\x6f\u20\x57\u6f\x72\u6c\x64\u21"
## End(Not run)
## --> Error: mixing Unicode and octal/hex escapes .....
## \U works like \u, but supports up to six hex digits.
## So we can replace \u with \U in the previous example.
n2 <- "\U0126\U0119\U1114\U022d\U2001\U03e2\U0954\U0f3f\U13d3\U147b\U203c"
stopifnot(identical(nn, n2))
## Under systems supporting multi-byte locales (and not Windows),
## \U also supports the rarer characters outside the usual 16^4 range.
## See the R language manual,
## https://cran.r-project.org/doc/manuals/r-release/R-lang.html#Literal-constants
## and bug 16098 https://bugs.r-project.org/show_bug.cgi?id=16098
## This character may or not be printable (the platform decides)
## and if it is, may not have a glyph in the font used.
"\U1d4d7" # On Windows this used to give the incorrect value of "\Ud4d7"
## nul characters (for terminating strings in C) are not allowed (parse errors)
## Not run:
"foo\0bar" # Error: nul character not allowed (line 1)
"foo\u0000bar" # same error
## End(Not run)
## A Windows path written as a raw string constant:
r"(c:\Program files\R)"
## More raw strings:
r"{(\1\2)}"
r"(use both "double" and 'single' quotes)"
r"---(\1--)-)---"
也可以看看
Syntax
用於語法的其他方麵。
sQuote
用於引用英文文本。
shQuote
用於引用操作係統命令。
“R 語言定義”手冊。
相關用法
- R QR.Auxiliaries 從 QR 對象重建 Q、R 或 X 矩陣
- R file.path 構造文件路徑
- R grep 模式匹配和替換
- R getwd 獲取或設置工作目錄
- R vector 向量 - 創建、強製等
- R lapply 對列表或向量應用函數
- R dump R 對象的文本表示
- R Sys.getenv 獲取環境變量
- R rank 樣本排名
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
- R pushBack 將文本推回連接
- R strsplit 分割字符向量的元素
- R seq.Date 生成規則的日期序列
- R invisible 將打印模式更改為不可見
- R noquote “無引號”字符串打印類
- R warning 警告信息
- R rapply 遞歸地將函數應用於列表
- R basename 操作文件路徑
- R with 評估數據環境中的表達式
- R formals 訪問和操縱形式參數
- R icuSetCollate 按 ICU 設置整理
- R search 給出 R 對象的搜索路徑
- R Defunct 將對象標記為已失效
- R gzcon 通過連接(解)壓縮 I/O
- R readRenviron 從文件設置環境變量
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Quotes。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。