小编Mat*_*ews的帖子

从Node.js执行Powershell脚本

我一直在寻找网络和Stackoverflow,但没有找到这个问题的答案.你会如何从Node.js执行Powershell脚本?该脚本与Node.js实例位于同一服务器上.

powershell node.js

32
推荐指数
5
解决办法
4万
查看次数

F# 自定义运算符报告计算表达式中的错误使用

我正在创建一个计算表达式 (CE),以简化建模者计划的定义。我想定义仅在CE中可用的函数。在此示例中,编译器表示自定义操作stepbranch的使用不正确,但我不明白为什么。编译器所说的只是它们没有被正确使用。

请注意,我知道我可以在 CE 之外定义step和来完成此操作。branch这个问题明确是关于使用自定义运算符的。我想隔离这个逻辑,以便它仅在 CE 上下文中可用。

type Step =
    | Action of string
    | Branch of string list list

type Plan =
    {
        Name : string
        Steps : Step list
    }

type PlanBuilder () =

    member _.Yield _ =
        {
            Name = ""
            Steps = []
        }
    
    member _.Run state = state

    [<CustomOperation "name">]
    member _.Name (state, name) =
        { state with Name = name }

    [<CustomOperation "steps">]
    member _.Steps …
Run Code Online (Sandbox Code Playgroud)

f# computation-expression

16
推荐指数
1
解决办法
542
查看次数

R流水线功能

有没有办法在R中编写流水线函数,其中一个函数的结果立即传递到下一个函数?我来自F#并且非常欣赏这种能力,但还没有找到如何在R中做到这一点.它应该很简单,但我找不到如何.在F#中它看起来像这样:

let complexFunction x =
     x |> square 
     |> add 5 
     |> toString
Run Code Online (Sandbox Code Playgroud)

在这种情况下,输入将被平方,然后添加5,然后转换为字符串.我希望能够在R中做类似的事情,但不知道如何做.我已经搜索了如何做这样的事情,但没有遇到任何问题.我想要导入数据,因为我通常必须导入它然后过滤.现在我在多个步骤中执行此操作,并且非常希望能够以F#管道方式执行某些操作.

pipeline r

15
推荐指数
3
解决办法
1357
查看次数

从R中的apply()函数返回多个值

我想从apply()函数返回多个值并将它们放在R中的单独列中但我不断收到错误.我想要做的是这样的:

experiments$result1, experiments$result2, experiments$result3 <- apply(experiments, 1, 
function(row)
  #Some analysis here
  #return x, y, and z for column result1, result2, and result3
  x, y, z
)
Run Code Online (Sandbox Code Playgroud)

也许这是解决问题的错误方法.实验是一个包含多列数据的数据框.我想附加作为每行分析结果的列,但我不知道如何在没有循环的情况下做到这一点,这对于R来说不是惯用的.感谢提前帮助.

所以这里有一些更精确的代码.

experiments$result1, experiments$result2, experiments$result3 <- apply(experiments, 1, function(row)
  x <- row["startingTemp"]*2
  y <- row["startingTemp"]*3
  z <- row["startingTemp"]*4
  return (list(x, y, z))
)
Run Code Online (Sandbox Code Playgroud)

"startingTemp"字段是我的"实验"数据框中的一列.我收到的错误是'闭包'类型不是子集,而且找不到对象'z'.

closures r

12
推荐指数
1
解决办法
7953
查看次数

F# - 保持F#交互发布输出

我正在使用F#interactive,我正在计算一些大型列表和数组,而我宁愿没有交互式窗口发布所有这些信息.有没有办法抑制输出?

具体来说,我正在开发单线程和多线程算法,并评估在何时从单线程函数更改为多线程函数变得更有效.我想让F#Interactive报告函数的运行时间,我一直在使用#time,但是我不想在将大量数据矩阵打印到屏幕时滚动回来.如果有办法在保持交互式环境写出矩阵的同时获取时序数据,我将非常感激.

f# f#-interactive

10
推荐指数
1
解决办法
928
查看次数

从列表到data.table与hash的R快速单项查找

我经常遇到的一个问题是需要从data.table中查找任意行.昨天我遇到了一个问题,我试图加速循环并使用profvis我发现从中查找data.table是循环中最昂贵的部分.然后我决定尝试找到在R中进行单项查找的最快方法.

数据通常采用data.table带有字符类型的键列的a形式.其余列通常是数值.我试图创建一个随机表,其特征与我经常处理的相似,这意味着> 100K行.我比较了本机列表,data.table包和hash包.本机列表与data.table单个项目查找性能相当.Hash似乎快了两个数量级.测试由随机抽样的10组10,000个密钥组成,以提供访问行为的变化.每种查找方法都使用相同的密钥集.

最终我的首选是要让data.table的行查找更快,而不是必须创建我的数据的哈希表,或者确定它不能完成,只需在我必须快速查找时使用哈希包.我不知道是否可能,但是你可以创建一个对data.table中行的引用的哈希表,以允许使用哈希包快速查找吗?我知道在C++中可以使用这种类型的东西,但据我所知,由于缺少指针,R不允许这种事情.

总结一下:1)我是否正确地使用data.table进行查找,因此这是单行查找所需的速度?2)是否可以创建指向data.table行的指针散列,以便以这种方式快速查找?

测试系统:

Windows 10 Pro x64

R 3.2.2

data.table 1.9.6

哈希2.2.6

Intel Core i7-5600U,16 GB RAM

码:

library(microbenchmarkCore) # install.packages("microbenchmarkCore", repos="http://olafmersmann.github.io/drat")
library(data.table)
library(hash)

# Set seed to 42 to ensure repeatability
set.seed(42)

# Setting up test ------

# Generate product ids
product_ids <- as.vector(
  outer(LETTERS[seq(1, 26, 1)],
    outer(outer(LETTERS[seq(1, 26, 1)], LETTERS[seq(1, 26, 1)], paste, sep=""),
          LETTERS[seq(1, 26, 1)], paste, sep = "" …
Run Code Online (Sandbox Code Playgroud)

hash r data.table

10
推荐指数
2
解决办法
2518
查看次数

拟合3参数Weibull分布

我一直在R做一些数据分析,我试图找出如何使我的数据适合3参数Weibull分布.我找到了如何使用2参数Weibull来完成它,但是在找到如何使用3参数进行操作方面做得不够.

以下是我使用包中的fitdistr函数来拟合数据的方法MASS:

y <- fitdistr(x[[6]], 'weibull')
Run Code Online (Sandbox Code Playgroud)

x[[6]] 是我的数据的子集,y是我存储拟合结果的地方.

statistics r distribution model-fitting weibull

9
推荐指数
1
解决办法
1万
查看次数

F# 说值未在计算表达式中定义

我一直在研究带有 F# 计算表达式的 State Monad,我也在尝试利用自定义操作。我得到了一些没有意义的奇怪行为。编译器报告一个值在上面两行声明时不存在。

type State<'a, 's> = ('s -> 'a * 's)

module State =
    // Explicit
    // let result x : State<'a, 's> = fun s -> x, s
    // Less explicit but works better with other, existing functions:
    let result x s = 
        x, s

    let bind (f:'a -> State<'b, 's>) (m:State<'a, 's>) : State<'b, 's> =
        // return a function that takes the state
        fun s ->
            // Get the value and next state from …
Run Code Online (Sandbox Code Playgroud)

monads f# computation-expression

8
推荐指数
1
解决办法
339
查看次数

使用Powershell将数据表保存为csv

必须有一个简单的方法来做到这一点.我有一个连接到数据库的Powershell脚本,我希望将生成的数据表保存为CSV.这是迄今为止的代码:

$connString = "Provider=msdaora;Data Source=MyDatabase;User Id=test;Password=test    
$qry = "select * from employees"
$OLEDBConn = New-Object System.Data.OleDb.OleDbConnection($connString)            
$OLEDBConn.open()            
$readcmd = New-Object system.Data.OleDb.OleDbCommand
$readcmd.Connection = $OLEDBConn
$readcmd.CommandTimeout = '300'
$readcmd.CommandText = $qry
$da = New-Object system.Data.OleDb.OleDbDataAdapter($readcmd)            
$dt = New-Object system.Data.datatable            
[void]$da.fill($dt)            
$OLEDBConn.close()
Run Code Online (Sandbox Code Playgroud)

csv datatable powershell

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

TPL Parallel.For用于长时间运行的任务

我想在F#中使用任务并行库(TPL)来执行许多(> 1000)长时间运行的任务.这是我目前的代码:

Parallel.For(1, numberOfSets, fun j ->
    //Long running task here
    )
Run Code Online (Sandbox Code Playgroud)

当我开始这时,似乎.NET立即启动所有任务并在它们之间不断反弹.更好的是,如果它继续执行任务,直到完成任务,然后再转移到下一个任务.这将最小化上下文切换.

有没有办法为调度程序提供提示?我知道有可能提供提示,但我找不到明确的例子,或者调度程序已经很聪明,而且只是我认为存在太多的上下文切换.谢谢您的帮助!

.net parallel-processing f# task-parallel-library

7
推荐指数
2
解决办法
1385
查看次数