为什么可以';ti附加R';s写函数

为什么可以';ti附加R';s写函数,r,R,对不起,如果这已经被回答了,我没有看到像这样的东西。我想创建一个正在运行的日志,但无法获取要附加的write函数。以下是一个示例: fName <- "D:/Temp/foo.txt" fCn <- file(fName) write('test1', fCn, append = TRUE) write('test2', fCn, append = TRUE) close(fCn) fName为此,您可以使用sink。将您在R控制台中实际看到的内容写入文本文件总是比较容易的,这样您

对不起,如果这已经被回答了,我没有看到像这样的东西。我想创建一个正在运行的日志,但无法获取要附加的write函数。以下是一个示例:

fName <- "D:/Temp/foo.txt"
fCn <- file(fName)
write('test1', fCn, append = TRUE)
write('test2', fCn, append = TRUE)
close(fCn)

fName为此,您可以使用
sink
。将您在R控制台中实际看到的内容写入文本文件总是比较容易的,这样您就可以确定输出了

sink("C:/Users/mahdisoltanim/Desktop/a.txt", append= TRUE)
cat("\n")
cat("test1")
cat("\n")
cat("test2")
sink()

为此,您可以使用
sink
。将您在R控制台中实际看到的内容写入文本文件总是比较容易的,这样您就可以确定输出了

sink("C:/Users/mahdisoltanim/Desktop/a.txt", append= TRUE)
cat("\n")
cat("test1")
cat("\n")
cat("test2")
sink()
以附加模式打开连接:

还会产生一个两行输出文件,从头创建。

以追加模式打开连接:


也会产生一个两行输出文件,从头开始创建。

可能是因为您没有为文件连接指定模式(例如,
file(…,open=“w”)
。如果没有默认值,每次调用
write
可能都会以某种方式重置连接,以确定您想要的内容……事实上,由于
write
调用
cat
以及在
中cat
我们看到:“如果文件是连接并打开以进行写入,则从其当前位置写入。如果文件未打开,则在调用期间以“wt”模式打开,然后再次关闭。”可能是因为您尚未为文件连接指定模式(例如,
file(…,open=“w”)
。如果没有默认值,每次调用
write
可能都会以某种方式重置连接,以确定您想要的内容……事实上,因为
write
调用
cat
中的cat
我们看到:如果文件是一个连接并打开进行写入,则从其当前位置写入。如果文件未打开,则在调用期间以“wt”模式打开文件,然后再次关闭。“唯一的问题是,它附加到最后一行,而不是在第一次写入时开始一个新行。这可以解决吗?或者每次都必须写入一个空行?我怀疑您是在windows上运行的,可能需要在”
以文本模式打开。我看到上面的代码出现了完美的换行符。唯一的问题是它附加到最后一行,并且在第一次写入
时没有开始新的一行。这可以解决吗?或者每次都必须写入一个空行?我怀疑您正在windows上运行,可能需要使用
“at”模式
以文本模式打开。我看到上面的代码有完美的换行符。
> fCn <- file(fName,open="a")
> fName="out1.txt"
> fCn <- file(fName,open="a")
> write('test1', fCn, append = TRUE)
> write('test2', fCn, append = TRUE)
> close(fCn)
> write('test1', "out2.txt", append = TRUE)
> write('test2', "out2.txt", append = TRUE)