标签: seq

Seq 的使用与 List、Array 和 Vector 的使用相比如何?

在 SO,我看到了将Array 与 Seq、List 与 Seq以及Vector 与所有内容进行比较的问题。但我不明白一件事。我什么时候应该真正使用 aSeq来替代其中的任何一个?我知道何时使用 a List、何时使用 anArray以及何时使用 a Vector。但是什么时候使用Seq而不是上面列出的任何集合是一个好主意呢?为什么我应该使用trait扩展Iterable而不是上面列出的所有具体类?

scala list vector seq scala-collections

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

R - 按列比较两行并将结果写入表中

我是 R 新手,可能我的问题的解决方案非常简单,但目前超出了我的能力范围...我想按列比较数据框中的行。每列中的数据是一个字母(核苷酸碱基):

seq1 A C T G T
seq2 A C G G G
seq3 A G G C A
...
Run Code Online (Sandbox Code Playgroud)

我想按列比较数据集中的所有行。我想得到的结果是比较中TRUE和FALSE的简单1或0,也以表格的形式写出来。所以它看起来像这样:

seq1_seq2 1 1 0 1 0
seq1_seq3 1 0 0 0 0
seq2_seq3 1 0 1 0 0
...
Run Code Online (Sandbox Code Playgroud)

我的 R 技能太低,无法写出有用的东西。然而,我设法发现

ifelse(data[1,]==data[2,], 1, 0) 
Run Code Online (Sandbox Code Playgroud)

返回几乎我需要的内容,但没有显示比较哪些行(没有 seq1_seq2 列)。对于这个问题的任何帮助,我将不胜感激。当然,最需要的是完整解决方案的示例,但我也将感谢有关如何解决此问题的任何建议。

先感谢您!

r seq

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

使用 Serilog 记录 json

我想将任何 json 记录到 serilog 属性中。我已经阅读了很多有关 serilog 和 json 的内容,但它是结构化的 json 日志记录,带有消息模板。所以我不想记录这个,而是Log.Info("{@text}",text);想这样做:

var json = "{ \"text\": \"hello\" }"; //a json string or a Json object
Log.Info(json);
Run Code Online (Sandbox Code Playgroud)

主要区别在于,使用第一种方法时,您有一个消息模板,并且始终有一个“文本”属性。我想要具有不同结构的 json,例如如果我有:

var json = "{ \"text\": \"hello\", \"text2\": \"hello2\" }"; //a json string or a Json object
Log.Info(json);
Run Code Online (Sandbox Code Playgroud)

我想获取 2 个属性,即每个 json 属性 1 个属性,而无需定义消息模板。这可能吗?我必须实现自己的 JsonFormatter 吗?

.net json seq serilog

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

如何让Serilog实例立即记录到Seq而不需要调用它的Dispose()?

我有一个 Windows 服务,它处理长时间运行的任务,并且永远不会关闭,除非强制关闭(即计算机关闭)。我希望在 Windows 服务启动和运行的整个过程中保持同一个 Serilog 实例处于活动状态(出于性能原因)。

但是,我只在 Dispose() 调用之后看到日志,如下所示。

var logger = new LoggerConfiguration()
            .WriteTo.Seq("http://localhost:5341")
            .CreateLogger();

logger.ForContext("TestContext", new { Machine = "TSTDB2" }, true).Information("Test");

logger.Dispose();
Run Code Online (Sandbox Code Playgroud)

我不介意几秒钟的延迟,但必须等到 Serilog 实例被处理对我来说不起作用。任何解决方案将不胜感激。

seq serilog seq-logging

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

F#在Seq <'T>中求和多个字段

我希望能够对序列的多个字段求和.我不知道如何在不重复迭代序列的情况下执行此操作.我的看法是效率低下.有没有一种聪明的方法可以做到这一点,我没有看到?

type item = {
    Name : string
    DemandQty : decimal
    Weight : decimal
    UnitCost : decimal
}

let items =
    {1..10}
    |> Seq.map (fun x -> 
        {
            Name = string x
            DemandQty = decimal x
            Weight = decimal x
            UnitCost = decimal x
        })

// This Works for a single value
let costSum =
    items
    |> Seq.sumBy (fun x -> x.DemandQty * x.UnitCost)

// This is similar to what I would like to do
let costSum, weightSum =
    items …
Run Code Online (Sandbox Code Playgroud)

f# seq

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

填充日期时间序列

我有一个由 ID、日期时间和值组成的 data.frame。对于每个 ID,我想扩展日期时间,以便在最小值和最大值之间每小时有一个。ID 和Value 列应填写各自的值(即不是NA)。永远不会出现每个 ID 有多个唯一 Value 值的情况。例如,新的 data.frame 应有 4 行 ID == 1 和 5 行 ID == 2(总共 9 行)。最简单的方法是什么?

我通常使用 dplyr,因此将接受 base 或 dplyr/tidyverse 方法

library(dplyr)
library(lubridate)

dt <- Sys.time() %>% floor_date('hours')
df <- data.frame(ID = c(1, 1, 2, 2), 
                 DateTime = c(dt, dt + hours(3), dt + hours(6), dt + hours(9)),
                 Value = c(3, 3, 4, 4))
Run Code Online (Sandbox Code Playgroud)

预期输出是:

output <- data.frame(ID = c(1, 1, 1, 1, 2, 2, 2, 2), 
                     DateTime = c(dt, …
Run Code Online (Sandbox Code Playgroud)

r seq posixct lubridate dplyr

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

访问 R 数据帧值而不是 Tibble

我是一位经验丰富的 Pandas 用户,无法将 R 框架中的值插入到函数中。

以下函数适用于硬编码值

>seq.Date(as.Date('2018-01-01'), as.Date('2018-01-31'), 'days') 

 [1] "2018-01-01" "2018-01-02" "2018-01-03" "2018-01-04" "2018-01-05" "2018-01-06" "2018-01-07"
 [8] "2018-01-08" "2018-01-09" "2018-01-10" "2018-01-11" "2018-01-12" "2018-01-13" "2018-01-14"
[15] "2018-01-15" "2018-01-16" "2018-01-17" "2018-01-18" "2018-01-19" "2018-01-20" "2018-01-21"
[22] "2018-01-22" "2018-01-23" "2018-01-24" "2018-01-25" "2018-01-26" "2018-01-27" "2018-01-28"
[29] "2018-01-29" "2018-01-30" "2018-01-31"
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的数据帧的摘录

>df[1,1:2]
# A tibble: 1 x 2
  start_time end_time  
  <date>     <date>    
1 2017-04-27 2017-05-11
Run Code Online (Sandbox Code Playgroud)

将这些值插入 'seq.Date' 函数时,出现错误

> seq.Date(from=df[1,1], to=df[1,2], 'days')
Error in seq.Date(from = df[1, 1], to = df[1, 2], "days") : 
'from' …
Run Code Online (Sandbox Code Playgroud)

r date seq tibble

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

如何从 Spark 中的数组列中删除元素?

我有一个Seq和数据框。数据框包含一列数组类型。我正在尝试Seq从列中删除 中的元素。

例如:

val stop_words = Seq("a", "and", "for", "in", "of", "on", "the", "with", "s", "t")

    +---------------------------------------------------+
    |sorted_items                                       |
    +---------------------------------------------------+
    |[flannel, and, for, s, shirts, sleeve, warm]       |
    |[3, 5, kitchenaid, s]                              |
    |[5, 6, case, flip, inch, iphone, on, xs]           |
    |[almonds, chocolate, covered, dark, joe, s, the]   |
    |null                                               |
    |[]                                                 |
    |[animation, book]                                  |
Run Code Online (Sandbox Code Playgroud)

预期输出:

+---------------------------------------------------+
|sorted_items                                       |
+---------------------------------------------------+
|[flannel, shirts, sleeve, warm]                    |
|[3, 5, kitchenaid]                                 |
|[5, 6, case, flip, inch, …
Run Code Online (Sandbox Code Playgroud)

arrays scala seq dataframe apache-spark

5
推荐指数
2
解决办法
4773
查看次数

在 F# 中执行 tryMax 和 tryMin 的最佳方法?

假设我有一个seq,如果有任何元素或None其他元素,我想返回最大的。F# 似乎没有这个内置。

这是我的尝试:

let tryMax xs = 
  if Seq.isEmpty xs
  then 
    None
  else 
    Seq.max xs |> Some

let tryMin xs = 
  if Seq.isEmpty xs
  then 
    None
  else 
    Seq.min xs |> Some
Run Code Online (Sandbox Code Playgroud)
  • 这种方法有什么问题吗?
  • 是否有内置的解决方案?

f# seq

5
推荐指数
2
解决办法
143
查看次数

在“first”的严格版本中两次调用“seq”

为什么seq在下面的代码中有两个调用(来自此处) -r传递了两次:

first' :: (a -> b) -> (a, c) -> (b, c)
first' f (x,y) = let { x' = f x; r = (x', y) } 
                   in x' `seq` r `seq` r
Run Code Online (Sandbox Code Playgroud)

我认为一个调用可以seq使它变得严格。

haskell seq

5
推荐指数
2
解决办法
74
查看次数