小编The*_*ema的帖子

如何在Bash脚本中迭代参数

我有一个复杂的命令,我想制作一个shell/bash脚本.我可以$1轻松地写出来:

foo $1 args -o $1.ext
Run Code Online (Sandbox Code Playgroud)

我希望能够将多个输入名称传递给脚本.什么是正确的方法呢?

当然,我想处理其中包含空格的文件名.

bash command-line

838
推荐指数
8
解决办法
58万
查看次数

如何在OCaml中获得堆栈跟踪?

如果你恰好要求它们,Objective Caml语言只会产生堆栈跟踪 - 对字节码和本机代码有什么要求?

ocaml stack-trace

27
推荐指数
3
解决办法
7838
查看次数

如何将read.table()多个文件读入R中的单个表?

我有文件名<InputData>.<TestName>.csv,我想为每个测试制作图表.我能看到的最好方法是为每个TestName创建一个R表.每个测试都会生成相同的数据列,因此我想将每个测试的所有数据都拉入一个R数据表,并为输入数据添加一列.

我想这样做:

read.tables(c("B217.SE.csv", "C10.SE.csv"), sep=",")
Run Code Online (Sandbox Code Playgroud)

产生(例如):

       Filename  col1   col2
1   B217.SE.csv     1      2
2   B217.SE.csv     2      4
3   C10.SE.csv      3      1
4   C10.SE.csv      4      5
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?我不知道的一些现有功能?使用for循环在R语言中写出来?

import r

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

在使用Template Toolkit的Catalyst项目中显示DBIx :: Class ResultSet的正确方法是什么?

给定DBIx :: Class结果集,例如:

my $rs = $c->model("DB::Card")->search({family_name => "Smith"});
Run Code Online (Sandbox Code Playgroud)

我读过的教程使用stash传递一行arrayref:

$c->stash->{cards} = [$rs->all];
Run Code Online (Sandbox Code Playgroud)

这导致查询在此时执行,并且生成的对象填充到存储中,因此它们可以在TemplateToolkit中用作:

[% FOREACH card IN cards %] 
    [% card.given_name %] [% card.family_name %] 
[%END%]
Run Code Online (Sandbox Code Playgroud)

有没有一种正确的方法让TT在从数据库中获取时对行进行迭代?

perl catalyst template-toolkit dbix-class

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

什么是ocaml类型'a.'a - >'一个意思?

在ocaml语言规范中,有一个简短的部分:

poly-typexpr ::= typexpr
               | { ' ident }+ . typexpr
Run Code Online (Sandbox Code Playgroud)

文中没有解释,唯一的例子poly-typexpr是定义方法类型:

method-type ::= method-name : poly-typexpr
Run Code Online (Sandbox Code Playgroud)

这让我能做什么?

polymorphism ocaml types

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

如何在OCaml中创建具有多个参数的类型?

我正在尝试创建一个具有多个类型参数的类型.我知道如何使用一个参数创建一个类型:

type 'a foo = 'a * int
Run Code Online (Sandbox Code Playgroud)

但我需要有两个参数,以便我可以参数化'int'部分.我怎样才能做到这一点?

polymorphism ocaml types

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

将子组标签添加到ggplot2中的抖动图

我有一个像抖动情节一样的近箱图:

dt <- rbind(se,cb,cb.se)
qplot(ds, size, data=dt, geom="jitter", colour=root, facets = test ~ .)
Run Code Online (Sandbox Code Playgroud)

情节http://i50.tinypic.com/1zbfjih.png

我希望在图中间为每个组添加一个摘要标签 - 例如,此处的大小总计:

 aggregate(list(size=dt$size), list(dt$ds, dt$test), sum)

   Group.1  Group.2   size
1     b217       se   9847
2      c10       se  97296
3     c613       se  21633
4       c7       se 207540
...
Run Code Online (Sandbox Code Playgroud)

我尝试使用+ geom_text(aes(x=ds, y=128, label=sum(size)), size=2)添加标签,但我在每个位置都得到相同的标签 - 如何获得该部分数据的总和?

编辑: 这就是我现在所处的地方 - 也许我只是朝着错误的方向前进

data <- rbind(se,cb,cb.se)
labels <-ddply(data, c("ds", "test"), function(df) sum(df$size))
ggplot(data=data, aes(x=ds)) +
  geom_jitter(aes(y=size, colour=root)) +
  geom_text(data=labels, aes(x=ds, y=600, label=V1), size=3) +
  facet_wrap(test ~ .)
Run Code Online (Sandbox Code Playgroud)

这段代码不起作用 …

label r ggplot2

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

如何在使用用户提供的格式字符串的OCaml printf之后触发操作

我有一个简单的函数,打印一个字符串并退出:

let fatal s = 
  print_string "Log: ";
  print_endline s;
  exit 1
Run Code Online (Sandbox Code Playgroud)

我可以使用printf做类似的事情而不用exit 1:

let log fmt = 
  printf ("Log: " ^^ fmt)
Run Code Online (Sandbox Code Playgroud)

此日志函数采用格式字符串并返回一个函数,该函数获取该格式字符串所需的参数并在前面打印"Log:".(当然,我的前缀对于我的实际应用来说并不是那么简单.)

把这两者结合起来并不容易.第一次尝试:

let fatalf fmt =
   Printf.printf ("Log: " ^^ fmt) 
   ???
   exit 1
Run Code Online (Sandbox Code Playgroud)

问题是我必须返回printf表达式的结果,以便可以将其余参数应用于它.一旦我返回了这个值,我就没有流量控制了exit.

printf格式化程序%t看起来很有用,因为它需要一个函数并运行它:

printf ("Log: " ^^ fmt ^^ "%!%t") ... (fun _ -> exit 1)
Run Code Online (Sandbox Code Playgroud)

这似乎不是%t必须最后工作,因此它在写入日志消息后运行,但这意味着退出函数必须在用户指定的参数之后,并且因为无法知道将有多少参数干预时,在给出干预论点时,不能产生完全应用printf的闭包.

我记得有一些支持命名的printf参数,但这是因为它是错误的.有没有办法模仿,或实现所谓的"任意printf后退出"行为?

logging printf ocaml

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