R 如何将打印(i/j)保存到输出文件?

R 如何将打印(i/j)保存到输出文件?,r,R,我做了简单的循环,得到了打印的结果,但不知道如何输出 这是我的代码: >for (i in 0:45) for (j in 0:45) print(i/j) [1] Inf [1] 1 [1] 0.5 [1] 0.3333333 [1] 0.25 [1] 0.2 [1] 0.1666667 [1] 0.1428571 [1] 0.125 [1] 0.1111111 [1] 0.1 从这里开始,我如何才能挽救这一结果?我应该在对象中进行打印(I/j),还是有其他方法将其保存到文件中? 谢谢

我做了简单的循环,得到了打印的结果,但不知道如何输出

这是我的代码:

>for (i in 0:45) for (j in 0:45) print(i/j)
[1] Inf
[1] 1
[1] 0.5
[1] 0.3333333
[1] 0.25
[1] 0.2
[1] 0.1666667
[1] 0.1428571
[1] 0.125
[1] 0.1111111
[1] 0.1
从这里开始,我如何才能挽救这一结果?我应该在对象中进行打印(I/j),还是有其他方法将其保存到文件中?
谢谢,

这取决于你想做什么。如果您只想将输出捕获到文本文件中,那么要查看的函数有
capture.output
cat
sink
。如果您想创建一个R对象以供以后在会话中使用,请创建一个具有所需结构的对象:vector、list、matrix或data.frame。然后使用
save
功能保存对象。对象的文本表示可以使用
dput
dump

两个选项创建,具体取决于所需的输出

1)
capture.output()

capture.output(for (i in 0:45) for (j in 0:45) print(i/j),
               file = "foo.txt")
2) 如果需要数字,请通过
save()
i/j
保存为R对象,或通过
write.csv()
将其保存为文本文件(如csv),不要打印

out <- c() ## NEVER write a loop like this! Always allocate storage & fill in
for(i in 0:45)
    for(j in 0:45)
        out <- c(out, i/j)
head(out)
save(out, "foo.rda")
write.csv(out, "foo.csv")

out我刚好打开了一个函数,可以写入文件。我使用了sink()(其他解决方案请参见DWin和Gavin的答案)

将生成一个文件(这只是头部):


有很多地方你也可以保存它。。从.Rdata(保存整个工作区)到将单个对象保存到文件,您几乎可以做任何事情。键入?write.table、?read.table、?sink或类似的内容开始。。。阅读同样的入门教程。随便选一个。。您的问题可能会在前几页讨论。谢谢Gavin的回答。你的解释很好理解。今天我从你身上学到了很多。谢谢罗曼的猫和水槽功能。现在我可以试试这些,它们对我来说是新的。
out2 <- outer(0:45, 0:45, "/")
sink(file = file.name, type = "output")
cat("/* File created on", date(), "*/\n")
cat("/* Walker density:", walk.dens, "*/\n")
cat("/* Capture history has", nchar(as.character(cap.hist[1,])),
        "sessions and", nrow(cap.hist), "walkers", "*/\n")
cat("/* number of initial walkers:", params$num.walker, "*/\n")
cat("/* number of steps per walker:", params$n.steps, "*/\n")
cat("/* area size:", params$area, "*/\n")
cat("/* home range:", params$home.range, "*/\n")
cat("/* number of bins:", params$num.bins, "*/\n")
cat("/* capture probability:", params$prob, "*/\n")
cat("/* number of sessions:", params$sessions, "*/\n")
cat("/* number of bootstraps:", params$num.boots, "*/\n")
cat("/* number of facies:", params$n.faces, "*/\n")
cat("/* working directory:", params$work.dir, "*/\n")
cat("/* number of cores for parallel:", params$num.cores, "*/\n")
cat("/* resolution of raster:", params$rsln, "*/\n")
cat("/* function used to modify resolution:", params$rsln.fun, "*/\n")
cat("/* created walk saved:", params$write.walk, "*/\n")
cat("/* columns: cap.hist/probs/world */\n\n")
apply(mat, 1, function(x) {
            cat(x["cap.hist"], x["probs"], x["supop"], ";", "\n")
        })
sink()
/* File created on Fri Feb 25 15:02:27 2011 */
/* Walker density: 0.001 */
/* Capture history has 40 entries and 67 number of walkers */
/* number of initial walkers: 200 */
/* number of steps per walker: 100 */
/* area size: 500 */
/* home range: 100 */
/* number of bins: 10 */
/* capture probability: 0.2 */
/* number of sessions: 40 */
/* number of lines per segment: */
/* number of bootstraps: 999 */
/* number of facies: 30 */
/* working directory: q:/walker/layers */
/* calculations done in parallel: */
/* number of cores for parallel: 4 */
/* resolution of raster: 5 */
/* function used to modify resolution: */
/* created walk saved: TRUE */
/* columns: cap.hist/probs/world */

1000000000010000100000000000000100000101 0.10876344 1 ; 
1000010000000010011000000000001000010000 0.09428192 1 ; 
0010000000001000001001101100000010000010 0.06079921 1 ; 
0000101000000000000000000000000000001001 0.05272485 1 ; 
1000000001101000001000000001000100000010 0.08599779 1 ;