srcfile
位於 base
包(package)。 說明
這些函數用於處理源文件,更一般地用於“source references”("srcref"
),即對源代碼的引用。生成的數據用於打印和源代碼級調試,並且通常以交互方式提供R會話,即當options(keep.source = TRUE)
.
用法
srcfile(filename, encoding = getOption("encoding"), Enc = "unknown")
srcfilecopy(filename, lines, timestamp = Sys.time(), isFile = FALSE)
srcfilealias(filename, srcfile)
getSrcLines(srcfile, first, last)
srcref(srcfile, lloc)
## S3 method for class 'srcfile'
print(x, ...)
## S3 method for class 'srcfile'
summary(object, ...)
## S3 method for class 'srcfile'
open(con, line, ...)
## S3 method for class 'srcfile'
close(con, ...)
## S3 method for class 'srcref'
print(x, useSource = TRUE, ...)
## S3 method for class 'srcref'
summary(object, useSource = FALSE, ...)
## S3 method for class 'srcref'
as.character(x, useSource = TRUE, to = x, ...)
.isOpen(srcfile)
參數
filename |
文件的名稱。 |
encoding |
文件采用的字符編碼。 |
Enc |
用於製作字符串的編碼:請參閱 |
lines |
源行的字符向量。其他R對象將被強製為字符。 |
timestamp |
用於文件副本的時間戳。 |
isFile |
已知此 |
srcfile |
|
first , last , line |
行號。 |
lloc |
由四個、六個或八個值組成的向量,給出源位置;查看具體信息'。 |
x , object , con |
適當類的對象。 |
useSource |
是否讀取 |
to |
可選的第二個 |
... |
方法的附加參數;這些將被忽略。 |
細節
這些函數和類處理源代碼引用。
srcfile
函數生成 srcfile
類的對象,其中包含源代碼文件的名稱和目錄及其時間戳,用於源代碼級調試(尚未實現)和源回顯。保存文件的編碼;有關編碼的討論,請參閱file
;有關平台上允許的編碼的列表,請參閱iconvlist
。
srcfilecopy
函數生成後代類 srcfilecopy
的對象,該對象將源代碼行保存在字符向量中。它複製 isFile
參數的值,以幫助調試器識別該文本是否來自文件係統中的真實文件。
srcfilealias
函數生成後代類 srcfilealias
的對象,該對象為另一個 srcfile 提供備用名稱。這是在使用 #line
指令時由解析器生成的。
getSrcLines
函數從 srcfile
讀取指定行。
srcref
函數生成 srcref
類的對象,該對象說明 srcfile
中的字符範圍。 lloc
值給出以下值:
c(first_line, first_byte, last_line, last_byte, first_column, last_column, first_parsed, last_parsed)
由於多字節字符,字節(元素 2、4)和列(元素 5、6)可能會有所不同。如果僅給出四個值,則假定列和字節匹配。如果在代碼中使用 #line
指令,行(元素 1、3)和解析的行(元素 7、8)可能會有所不同:前者將遵循該指令,後者隻會計算行數。如果僅給出 4 或 6 個元素,則將假定解析的行與這些行匹配。
為類 srcfile
和 srcfilecopy
定義了 print
、 summary
、 open
和 close
的方法。 open
方法在特定行打開其內部 file
連接;如果它已經打開,它將被重新定位到該行。
方法定義為print
,summary
和as.character
上課srcref
。這as.character
方法將讀取關聯的源文件以獲取與引用相對應的文本。如果to
給出了參數,它應該是第二個srcref
位於同一文件中的第一個之後;它們將被視為整個範圍的一個參考。確切的行為取決於源文件的類。如果源文件繼承自類srcfilecopy
,這些行是使用 “parsed” 行計數從保存的副本中獲取的。如果沒有,則嘗試讀取該文件以及該文件的原始行號srcref
使用記錄(即元素 1 和 3)。如果發生錯誤(例如,文件不再存在),則顯示類似“<srcref:"file" 字符 1:1 到 2:10>' 將被返回,表明line:column
第一個和最後一個字符的範圍。這summary
方法默認為這種類型的顯示。
列表srcref
對象可以附加到表達式作為"srcref"
屬性。 (名單srcref
對象的長度應與表達式相同。)默認情況下,表達式由print.default
使用相關的srcref
。要查看已解析的代碼,請調用print
有論點useSource = FALSE
。如果一個srcref
對象打印有useSource = FALSE
, 這 '<srcref: \dots>’ 記錄將被打印。
.isOpen
供內部使用:它檢查與 srcfile
對象關聯的連接是否打開。
值
srcfile
返回 srcfile
對象。
srcfilecopy
返回 srcfilecopy
對象。
getSrcLines
返回源代碼行的字符向量。
srcref
返回 srcref
對象。
例子
# has timestamp
src <- srcfile(system.file("DESCRIPTION", package = "base"))
summary(src)
getSrcLines(src, 1, 4)
ref <- srcref(src, c(1, 1, 2, 1000))
ref
print(ref, useSource = FALSE)
作者
Duncan Murdoch
也可以看看
getSrcFilename
用於從源引用中提取信息,或 removeSource
用於從(非原始)函數(又名 ‘closure’)中刪除信息。
相關用法
- R strsplit 分割字符向量的元素
- R seq.Date 生成規則的日期序列
- R search 給出 R 對象的搜索路徑
- R solve 求解方程組
- R scan 讀取數據值
- R sprintf 使用 C 風格字符串格式化命令
- R stop 停止函數執行
- R sign 標誌函數
- R svd 矩陣的奇異值分解
- R strtoi 將字符串轉換為整數
- R source 從文件、連接或表達式中讀取 R 代碼
- R sQuote 引用文字
- R switch 選擇替代方案列表之一
- R substitute 替換和引用表達式
- R strrep 重複字符向量的元素
- R split 分組並重新集合
- R slice.index 數組中的切片索引
- R sort 對向量進行排序或排序
- R standardGeneric 形式化方法係統 – 調度 S4 方法
- R sequence 創建序列向量
- R startsWith 字符串是否以另一個字符串開頭或結尾?
- R system.file 查找 R 係統文件的名稱
- R sample 隨機樣本和排列
- R strwrap 將字符串換行以設置段落格式
- R seek 重新定位連接的函數
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 References to Source Files and Code。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。