我试图绕着Elisp的cl循环设施,但似乎无法找到跳过元素的方法.这是一个人为的例子来说明这个问题:我想循环一个整数列表并得到一个新的列表,其中原始列表中的所有奇数整数都是平方的.偶数整数应该省略.
根据cl-loop的文档,我应该能够这样做:
(loop for i in '(1 2 3)
if (evenp i)
append (list)
else
for x = (* x x)
and append (list x))
Run Code Online (Sandbox Code Playgroud)
我想要的输出是'(1 9)一个错误:
cl--parse-loop-clause: Expected a `for' preposition, found (list x)
Run Code Online (Sandbox Code Playgroud)
显然这and不符合预期,但我不明白为什么.(我知道我可以简化else块只包含一个子句,这样and就不再需要了.但是,我对你真正需要连接几个子句的情况感兴趣and.)
问题的第二部分:理想情况下,我可以这样写:
(loop for i in '(1 2 3)
if (evenp i)
continue
for x = (* x x)
append (list x))
Run Code Online (Sandbox Code Playgroud)
继续是跳过其他语言迭代的一种非常常见的方法.为什么cl-loop没有continue运算符?是否有一种简单的方法可以跳过我忽略的元素(比我在第一个例子中尝试的更简单)?
我在 MTurk 上有一个完全配置的 HIT,需要在更长的时间内以固定的时间间隔发布此 HIT 的批次。当然,手动执行此操作既累人又容易出错,因为批次需要在一天中的特定时间过帐。是否有任何脚本可以用来实现这一目标?
我看过亚马逊的命令行工具,但它们使用起来似乎很麻烦,而且亚马逊也不再支持它们了。
如果解决方案涉及一些编程,那很好。我也知道如何使用 cronjobs。
我想要一个线图,其中value绘制为expt每个级别一行的函数var:
这是我的数据:
lines <- "
expt,var,value
1,none.p,0.183065327746799
2,none.p,0.254234138384241
3,none.p,0.376477571234912
1,male.p,-1.58289835719949
2,male.p,-1.98591548366901
3,male.p,-2.02814824729229
1,neutral.p,-2.01490302054226
2,neutral.p,-1.88178562088577
3,neutral.p,-1.68089687641625
1,female.p,-3.27294304613848
2,female.p,-3.07711187982237
3,female.p,-2.89652562347054
1,both.p,-2.40011011312792
2,both.p,-2.24495598015741
3,both.p,-2.78501124223834"
con <- textConnection(lines)
data <- read.csv(con)
close(con)
Run Code Online (Sandbox Code Playgroud)
expt 是一个因素:
data$expt <- factor(data$expt)
Run Code Online (Sandbox Code Playgroud)
当我使用时,一切都按预期工作 geom_point
ggplot(data, aes(expt, value, colour=var)) + geom_point()
Run Code Online (Sandbox Code Playgroud)
但是当我用的时候 geom_line
ggplot(data, aes(expt, value, colour=var)) + geom_line()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息
geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?
Run Code Online (Sandbox Code Playgroud)
和一个空的情节.什么时候expt是数字,它可以工作,但我更喜欢使用因子,因为这给了我在x轴上的正确标签.这有什么问题?我发现它非常违反直觉,它适用于点,但不适用于线条.