在 SO,我看到了将Array 与 Seq、List 与 Seq以及Vector 与所有内容进行比较的问题。但我不明白一件事。我什么时候应该真正使用 aSeq来替代其中的任何一个?我知道何时使用 a List、何时使用 anArray以及何时使用 a Vector。但是什么时候使用Seq而不是上面列出的任何集合是一个好主意呢?为什么我应该使用trait扩展Iterable而不是上面列出的所有具体类?
我是 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 列)。对于这个问题的任何帮助,我将不胜感激。当然,最需要的是完整解决方案的示例,但我也将感谢有关如何解决此问题的任何建议。
先感谢您!
我想将任何 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 吗?
我有一个 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 实例被处理对我来说不起作用。任何解决方案将不胜感激。
我希望能够对序列的多个字段求和.我不知道如何在不重复迭代序列的情况下执行此操作.我的看法是效率低下.有没有一种聪明的方法可以做到这一点,我没有看到?
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) 我有一个由 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) 我是一位经验丰富的 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) 我有一个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) 假设我有一个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)
为什么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使它变得严格。