【问题标题】:R how to print different types of variables into one txt fileR如何将不同类型的变量打印到一个txt文件中
【发布时间】:2019-03-22 11:02:16
【问题描述】:

我有一个 lm 模型、一个来自 vif 函数的数值向量和一些字符变量。

gvmodel<-gvlma(lmFit)
VIF<-sqrt(vif(lmFit))
Str1<-"Original R-square=".567"
Str2<-"Cross-validated R-Square=.123"

我想将所有内容打印到一个 txt 文件中。我试过catcapture.output

cat(gvmodel,VIF,Str1, file="E:/.../text.txt")
capture.output(paste(gvmodel,VIF,...,sep=""),file="E:/.../text.txt")

显然这不起作用。任何人如何将它们打印到单个txt文件中?谢谢

【问题讨论】:

  • Str1&lt;-""Original R-square=".567" 应该是Str1 &lt;- "Original R-square=.567" R 抛出什么错误信息?
  • 对不起,这里只是一个错字

标签: r printing


【解决方案1】:

Sink() 有效。接收一个 txt 文件路径和名称,运行任何产生文本输出的命令,它们将被捕获到 txt 文件中。最后sink() 关闭。

 sink("E:/.../Sink.txt")
 gvmodel
 sqrt(vif(ModeName))
 sink()

【讨论】:

    【解决方案2】:

    在您的代码中,gvmodel&lt;-gvlma(lmFit) 生成 gvlma 对象。它不能直接打印到 .txt 文件中。您可以首先使用as.character() 选项将其转换为字符:

    gvmodel<-gvlma(lmFit)
    gvmodel <- as.character(gvmodel)
    

    结果是可打印的,例如cat。所以如果你把所有这些放在一起:

    gvmodel<-gvlma(lmFit)
    gvmodel <- as.character(gvmodel)
    VIF<-sqrt(vif(lmFit))
    Str1<-"Original R-square=.567"
    Str2<-"Cross-validated R-Square=.123" # NB the corrected quotation marks
    
    cat(gvmodel,VIF,Str1, file="yourfile.txt",sep="\t")
    

    【讨论】:

    • 感谢您的建议。我将 gvmodel 转换为字符,打印出来是这样的: lm(formula = Murder ~ ., data = DataTraining) Murder ~ Population + Illiteracy + Income + Frost c(Alabama = 4.04095098567961, Arizona = -1.50265504165748, California = -0.0650525845054262, Colorado = 1.54774873568549, Connecticut = -3.61072262553982... 每次观察的残差和影响都打印出来,没有换行。
    猜你喜欢
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多