當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R textConnection 文本連接


R語言 textConnection 位於 base 包(package)。

說明

輸入和輸出文本連接。

用法

textConnection(object, open = "r", local = FALSE,
               name = deparse1(substitute(object)),
               encoding = c("", "bytes", "UTF-8"))

textConnectionValue(con)

參數

object

特點。的說明base connections。對於輸入來說,這是一個R字符向量對象,以及對於輸出連接的名稱R用於接收輸出的字符向量,或NULL(沒有人)。

open

字符串。用於輸入連接的 "r" (或等效的 "" )或用於輸出連接的 "w""a"

local

合乎邏輯的。僅用於輸出連接。如果 TRUE ,輸出將分配給調用環境中的變量。否則使用全局環境。

name

指定連接名稱的 character 字符串。

encoding

字符串,部分匹配。僅用於輸入連接。應如何處理 object 中標記的字符串:轉換為當前語言環境、逐字節使用或轉換為 UTF-8。

con

輸出文本連接。

細節

打開輸入文本連接,並在創建連接對象時複製字符向量,並且 close 銷毀該副本。 object 應該是字符向量的名稱:但是,如果 deparse 小於 60 個字節,則將接受短表達式。

打開輸出文本連接並創建一個R用戶工作區或調用環境中給定名稱的字符向量,具體取決於local爭論。該對象將始終保存連接的完整輸出行,並且isIncomplete將指示是否有不完整的最後一行。關閉連接將輸出最後一行,無論是否完整。 (一行在以行尾結束後就完成了,由"\n"R.) 輸出字符向量已鎖定綁定(請參閱lockBinding) 直到close在連接上被調用。還可以檢索字符向量通過 textConnectionValue,這是唯一的方法,如果object = NULL。如果當前區域設置被檢測為 Latin-1 或 UTF-8,則字符向量的非 ASCII 元素將被相應標記(請參閱Encoding)。

使用 mode = "a" 打開文本連接將嘗試附加到用戶工作區或調用環境中具有給定名稱的現有字符向量。如果沒有找到(即使存在名稱正確但類型錯誤的對象),將創建一個新的字符向量,並帶有警告。

您不能在文本連接上seek,並且seek 將始終返回零作為位置。

文本連接具有稍微不尋常的語義:它們始終處於打開狀態,並且丟棄輸入文本連接而不關閉它(因此它得到garbage-collected)不會發出警告。

對於 textConnection ,是繼承自類 "connection" 的類 "textConnection" 的連接對象。

對於 textConnectionValue ,一個字符向量。

注意

由於輸出文本連接使字符向量保持最新line-by-line,因此使用它們的成本相對較高,並且通常最好使用匿名file() 連接來收集輸出。

vsnprintf 不返回所需輸出長度的(罕見)平台上,輸出連接的行長度有 100,000 個字符的限製:較長的行將被截斷並出現警告。

例子

zz <- textConnection(LETTERS)
readLines(zz, 2)
scan(zz, "", 4)
pushBack(c("aa", "bb"), zz)
scan(zz, "", 4)
close(zz)

zz <- textConnection("foo", "w")
writeLines(c("testit1", "testit2"), zz)
cat("testit3 ", file = zz)
isIncomplete(zz)
cat("testit4\n", file = zz)
isIncomplete(zz)
close(zz)
foo

# capture R output: use part of example from help(lm)
zz <- textConnection("foo", "w")
ctl <- c(4.17, 5.58, 5.18, 6.11, 4.5, 4.61, 5.17, 4.53, 5.33, 5.14)
trt <- c(4.81, 4.17, 4.41, 3.59, 5.87, 3.83, 6.03, 4.89, 4.32, 4.69)
group <- gl(2, 10, 20, labels = c("Ctl", "Trt"))
weight <- c(ctl, trt)
sink(zz)
anova(lm.D9 <- lm(weight ~ group))
cat("\nSummary of Residuals:\n\n")
summary(resid(lm.D9))
sink()
close(zz)
cat(foo, sep = "\n")

參考

Chambers, J. M. (1998) Programming with Data. A Guide to the S Language. Springer.
[S has input text connections only.]

也可以看看

connectionsshowConnectionspushBackcapture.output

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Text Connections。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。