当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。