R从代码中分离结果

时间:2011-06-30 07:32:24

标签: r

我正在使用R或开始使用R.我使用for循环执行了一些脚本,如果......我对结果感到满意。

现在我的问题是在控制台中我会有所有代码行(大约150行),而我真的只对4行感兴趣,我的结果。

无论如何要清理控制台以仅查看一些请求的线路?而不是所有的代码?如果不是,我正在考虑将它们保存在csv文件中并访问csv文件以查看脚本的结果,但它并没有真正有效。

提前致谢

3 个答案:

答案 0 :(得分:7)

我希望这取决于你的“结果”在控制台中的表现,以及其余部分是否真正是“代码”。这4行是cat / print语句的结果吗?然后,您可以查看?sink将结果发送到文件。

另一种选择是将这些结果存储在变量(例如列表)中,并在所有计算结束时打印此列表。之后,应该很容易进行分离。

答案 1 :(得分:4)

您是在脚本编辑器中编写代码而不是在控制台中编写代码吗?另一种选择是在脚本上使用source(),该脚本将运行整个脚本,但不会在控制台中显示(仅输出)。 RStudio(我强烈建议你用于R; http://rstudio.org/)有一个“源文件”按钮或类似的东西。

但更重要的是,让R明确返回结果是学习如何在R中编程的重要部分。您希望您的脚本也能为其他人清楚!一些解决方案是将一些代码块设为function,或者建议将结果存储在list中。

答案 2 :(得分:3)

对我来说,我会把你的代码放到一个函数中,它会在运行时有效地隐藏控制台中的代码,并将代码的结果存储到变量中,然后将其保存到文件中

foo <- function(x) {
    result<-0
    for(i in 1:length(x)){
        result<-result+x[i]
    }
    return(result)
}

bar <- foo(x=c(2,3,4,5,4,3,2,3,4,5))
write.csv(bar, "resultfile.csv")