小编Phi*_*lis的帖子

将所有输出重定向到 Julia 中的文件

我想知道如何将给定调用的任何输出重定向到文件,以便该文件准确包含通常显示在 REPL 中的内容。

我知道Suppressor.jl包是一个有趣的入口点,几乎可以满足我的需要,但例如:

using DataFrames
using Suppressor
output = @capture_out begin
dtf = DataFrame(                 
 [8.04   9.14  7.46   6.58;    
  6.95   8.14  6.77   5.76;   
  8.33   9.26  7.81   8.47])
dtf
end
Run Code Online (Sandbox Code Playgroud)

在输出中不捕获任何内容(或者更准确地说,它捕获"")。为了能够捕获输出,我们必须在这个代码块中编写print(dtf)而不是(而简单的指令实际上会在 REPL 中产生输出)。所以看来这个宏无法捕获任何输出。dtfdtf@capture_out

实际上,当我向 Julia 发送给定的代码块时,我需要将控制台中显示的所有内容重定向到给定的文件:正常输出或错误消息。

实现这一目标的最佳/最简单方法是什么?并且,如果可能的话,对包的依赖最小化?

io julia

5
推荐指数
1
解决办法
1975
查看次数

Julia 中的探索性 PCA

我尝试了解如何使用 MultivariateStats.jl 包在 Julia 中执行简单的探索性 PCA。

\n

例如,在 R 中,可以执行以下操作:

\n
library(FactoMineR)\ndata(iris)\n\n## PCA model:\nres_pca <- PCA(iris, quali.sup = 5, graph = FALSE)\n## Retrieve coordinates of individuals on all 4 PCs:\nres_pca$ind$coord\n## Simple plots:\nplot(res_pca, choix = "ind", habillage = 5)\nplot(res_pca, choix = "var")\n
Run Code Online (Sandbox Code Playgroud)\n

我没有设法在 Julia 中获得这些非常基本的操作的任何等效项(我的意思是使用 MultivariateStats.jl 中的“本机”函数)。让我们从以下开始:

\n
using MultivariateStats\nusing RDatasets\n\niris = dataset("datasets", "iris")\n\n## PCA model:\nM = fit(PCA, Array(iris[:, 1:4]); pratio=1, maxoutdim=4)\n
Run Code Online (Sandbox Code Playgroud)\n

一旦我获得了 PCA“模型” M,我如何轻松检索个人坐标?如何轻松显示相关圈等?

\n

据我了解,从准机器学习的角度来看,PCA 在 Julia 中作为一种“模型”实现,并且基本上无法提供轻松显示探索性 PCA 中通常需要的所有常用图表、统计数据和见解的方法?(我的意思是,cos\xc2\xb2、贡献等)

\n

是否还有其他更面向探索性多变量分析的 Julia 包,可以提供与 FactoMineR 或 …

pca julia

3
推荐指数
1
解决办法
2389
查看次数

在 Julia 中导出为 CSV 文件

警告:这些都是菜鸟问题,因为我对 Julia真的很陌生。

在 R 中,有一个相当“统一”的函数来导出(几乎)任何类型的对象read.table()。看起来 Julia 的情况稍微复杂一些。如果我理解得很好:

  1. 某些标准类型(例如,数组、字典和元组)总是可以用 导出writedlm,但不能总是用导出CSV.write。相反,DataFrames 总是可以用 导出CSV.write,但永远不能用writedlm. 这样对吗?因此,不存在类似于 R 的“通用导出器” write.table()

  2. 随着写入 CSV 文件,CSV.write似乎还返回导出文件的名称。相反,writedlm不会。这对我来说是个问题。实际上,我需要一种方法将 DataFrame 导出到带有返回值的函数的 CSV 文件中,即只有副作用的函数,例如writedlm. 有什么办法可以在 Julia 中实现这一目标吗?

    编辑:要详细了解,我的问题是在 aCSV.write之后ans指向导出文件的名称;而情况并非如此writedlm这里这里的插图。即使有@Przemyslaw Szufel 给出的想法,我也无法摆脱这一点。(这是一个相当微妙的问题,但我实际上是在尝试为 Julia 编写一个 emacs lisp 后端。这种不一致,例如在导出对象后不知道是answillnothing还是文件名,在这次冒险中增加了一些痛苦。 .. :-) 理想情况下,我只是希望CSV.write可以保持沉默。)

谢谢!

csv dataframe export-to-csv julia

2
推荐指数
1
解决办法
631
查看次数

标签 统计

julia ×3

csv ×1

dataframe ×1

export-to-csv ×1

io ×1

pca ×1