通过Console直接写入R数据

时间:2013-10-06 10:05:40

标签: r terminal

将R数据采样直接写入文件的最有效方法是什么:

在终端中,输入"R" -> R即可。

创建Datsample: sample(1.00:20000.00, 10)

如何将结果直接写入文件? 我知道(正常)方法:

(例如)ls -l > ~/Directory/file.txt

但是在R控制台中,>>>方法是错误的。

2 个答案:

答案 0 :(得分:1)

一种选择是使用capture.output

capture.output(sample(1.00:20000.00, 10),
             file='~/Directory/file.txt')

这将创建一个与您在控制台中看到的输出相同的文件。

答案 1 :(得分:1)

正如我的评论所述,探索sink。这是一个最小的例子。在其中,我们告诉R开始将输出下沉到文件中。输出在R控制台中不可见。

set.seed(1)
sink(file="sinking.txt")
sample(1.00:20000.00, 10)
sink()

第二次调用sink()会停止将输出声压缩到文件中。输出按预期显示在R控制台中。

sample(1.00:20000.00, 10)
# [1]  4120  3531 13740  7681 15394  9952 14349 19832  7598 15542

sink也有其他论点。 append允许您向现有文件添加值,split可以将输出发送到 两者 R控制台和文件。现在,我们将继续写入上一个文件。将其设置为将输出附加到上一个文件,并在控制台中显示输出

sink(file="sinking.txt", append=TRUE, split=TRUE)
sample(letters, 10)
#  [1] "y" "f" "p" "c" "z" "i" "a" "h" "x" "v"
sink()

让我们重读文件,看看写了什么。

cat(readLines("sinking.txt"), sep = "\n")
#  [1]  5311  7443 11456 18162  4033 17964 18888 13212 12578  1236
#  [1] "y" "f" "p" "c" "z" "i" "a" "h" "x" "v"