在 R 中,使用 seq,我可以获得日期序列
seq(as.Date('2014-02-01'), as.Date('2014-8-31'), by='1 month')
[1] "2014-02-01" "2014-03-01" "2014-04-01" "2014-05-01" "2014-06-01" "2014-07-01" "2014-08-01"
Run Code Online (Sandbox Code Playgroud)
我怎么能得到一对值?序列上的值区间
"2014-02-01" "2014-03-01"
"2014-03-01" "2014-04-01"
...
Run Code Online (Sandbox Code Playgroud) 我有一个Seq的Book,我需要保存到我的数据库,他们是在序列的顺序相同。Book.save返回一个Future[Unit]
如果我编写以下代码,我知道可能不会保留保存顺序:
books.map(_.save)
如何按顺序执行这些保存,但将结果作为Future? 谢谢!
我想知道当序列转换为数组然后从此以后再次视为序列时,是否会得到特殊待遇。
let sq = seq { for i in 0 .. 10 do yield i }
let arr = Seq.toArray sq
let len = Array.length arr // O(1)
let sq2 = arr |> Seq.ofArray
// from converted seq
let len2 = Seq.length sq2 // O(n)???
// or direct:
let len2 = Seq.length arr // O(n)???
Run Code Online (Sandbox Code Playgroud)
出于同样的原因,F#是否足够聪明,Seq.toArray arr可以简单地创建数组的副本,单独保留数组(而不创建副本),还是使用枚举器遍历每个项目?
换句话说,F#中的序列是否还以某种方式记得它们的内部结构是数组?
我问这个问题,因为在昂贵的序列上,您可能需要多次输入长度,并且一次对其进行评估将是有益的。我可以创建一个记住长度的特定序列类型,也可以使用已经存在的魔术。
我想创建以下矢量序列.
0 1 0 0 2 0 0 0 3 0 0 0 0 4
Run Code Online (Sandbox Code Playgroud)
我的想法是创造0先用rep(),但不知道如何添加1:4.
我正在寻找最干净的方法来创建一个在数据框中按 id 从零开始的序列。
df <- data.frame (id=rep(1:10,each=10))
Run Code Online (Sandbox Code Playgroud)
如果我想从 1 开始序列,可以执行以下操作:
library(dplyr)
df<-df %>% group_by(id) %>%
mutate(start = 1:n()) %>%
ungroup()
Run Code Online (Sandbox Code Playgroud)
但从 0 开始不起作用,因为它会创建一个额外的数字(0-10 与 1-10 相比),所以我需要添加一个额外的行,有没有一种方法可以一步完成这一切,也许使用dplyr?显然有很多解决方法,例如创建另一个数据集并将其附加到原始数据集。
df1 <- data.frame (id=1:10,
start=0)
new<-rbind(df,df1)
Run Code Online (Sandbox Code Playgroud)
这看起来有点尴尬而且不那么整洁。我知道您可以在 dplyr 中使用 rbind,但不确定如何将所有内容合并到一个步骤中,特别是如果您有其他非定时变化变量,您只想复制到新行中。有兴趣看看建议,谢谢。
当使用 Serilog 和 Seq 的应用程序找不到将日志发送到的服务器时,预期的行为是什么?每次尝试记录都会抛出异常吗?
我希望我的应用程序使用 Seq 服务器(如果可用),但如果不可用,仍继续运行并记录到文件。
我正在尝试在每月的最后一天创建一个日期序列。例如,开始日期为“2018-01-31”。我想创建自开始日期以来每月最后一天的序列。
[1] "2018-01-31" "2018-02-28" "2018-03-31" "2018-04-30" "2018-05-31" "2018-06-30"
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用这个语法:
seq(as.Date("2018-01-31",format="%Y-%m-%d"),by="month",length.out=6)
Run Code Online (Sandbox Code Playgroud)
但它给出了这个输出:
[1] "2018-01-31" "2018-03-03" "2018-03-31" "2018-05-01" "2018-05-31" "2018-07-01"
Run Code Online (Sandbox Code Playgroud)
如何获取自开始日期以来每个月的最后一天?
我最近一直在玩F#.我想知道而不是使用for循环来生成一个元素序列,它与列表中的每个其他元素相乘,我如何使用Seq map函数或类似的东西来生成类似下面的内容.
所以对于例如我有一个列表[1..10]我想应用一个产生类似结果的乐趣
[(1*1); (1*2);(1*3); (1*4); (1*5)......(2*1);(2*2);(2*3).....(3*1);(3*2)...]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
非常感谢你的帮助.
在2.8.1/2.9.0.1 REPL中尝试以下内容,第一个给出错误.
val l = List(Vector(1,2), List(3,4,5))
error: type mismatch;
found : scala.collection.immutable.Vector[Int]
required: scala.collection.immutable.Seq[Int]{def companion: scala.collection.generic.GenericCompanion[scala.collection.immutable.Seq[Any]]; protected def thisCollection: Seq[Int]{def companion: scala.collection.generic.GenericCompanion[Seq[Any]]}; def dropRight(n: Int): scala.collection.immutable.Seq[Int]{def companion: scala.collection.generic.GenericCompanion[scala.collection.immutable.Seq[Any]]}; def takeRight(n: Int): scala.collection.immutable.Seq[Int]{def companion: scala.collection.generic.GenericCompanion[scala.collection.immutable.Seq[Any]]}; def slice(start: Int,end: Int): scala.collection.immutable.Seq[Int]{def companion: scala.collection.generic.GenericCompanion[scala.collection.immutable....
val l = List(Vector(1,2), List(3,4,5))
^
:5: error: type mismatch;
found : List[Int]
required: scala.collection.immutable.Seq[Int]{def companion: scala.collection.generic.GenericCompanion[scala.collection.immutable.Seq[Any]]; protected def thisCollection: Seq[Int]{def companion: scala.collection.generic.GenericCompanion[Seq[Any]]}; def dropRight(n: Int): scala.collection.immutable.Seq[Int]{def companion: scala.collection.generic.GenericCompanion[scala.collection.immutable.Seq[Any]]}; def takeRight(n: Int): scala.collection.immutable.Seq[Int]{def companion: scala.collection.generic.GenericCompanion[scala.collection.immutable.Seq[Any]]}; def slice(start: Int,end: …Run Code Online (Sandbox Code Playgroud) 我有一个非常大的懒惰序列,我想把它转换成一个集合.我知道序列中不同元素的数量很少,所以我很容易将该集合放入内存中.但是,我可能无法将整个懒惰的seq放入内存中.我想做(into #{} my-lazy-seq),但我想到,根据into实现的方式,这可能会立即将整个seq拉入内存.
它会在操作时into保持序列的头部吗?