小编Ric*_*odd的帖子

Scala将Iterable或collection.Seq转换为collection.immutable.Seq

看来toSeqScala集合中的方法返回一个scala.collection.Seq,我也可以返回一个Traversable或者Iterable需要将其转换为a scala.collection.immutable.Seq.

是否有捷径可寻?

谢谢理查德

scala scala-collections

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

选择其他列为组的最大值的列值

我试图在表中选择两列(ID和状态).该表应显示每个ID的最大值的状态.我尝试过其他几个例子但似乎没什么用.

原始数据结构:

ID  state    value (FLOAT)
1   TX   921,294,481 
1   SC   21,417,296 
1   FL   1,378,132,290 
1   AL   132,556,895 
1   NC   288,176 
1   GA   1,270,986,631 
2   FL   551,374,452 
2   LA   236,645,530 
2   MS   2,524,536,050 
2   AL   4,128,682,333 
2   FL   1,503,991,028
Run Code Online (Sandbox Code Playgroud)

因此,结果数据结构应如下所示:

ID  STATE (Max Value)
1   FL
2   AL
Run Code Online (Sandbox Code Playgroud)

佛罗里达州和阿拉巴马州的ID群体价值最高.

任何帮助将不胜感激.我确实在这里找到了答案,但无法让答案对我有用.

sql group-by max

30
推荐指数
3
解决办法
6万
查看次数

Visual Studio的调试速度非常慢

我试图使用具有布尔条件的断点来调试VS2010中的程序.这个特定的断点非常缓慢,使我的程序运行速度比无条件或使用常规无条件断点慢几百倍.

我的问题是,这是视觉工作室的常见问题,我不敢相信调试器会这么慢吗?布尔表达式非常简单,它只是说在for循环中i == x时打破程序.

任何帮助赞赏,因为它使调试非常痛苦.

谢谢理查德

        public static RawNetCalculationResults newCATXLNets(IList<Loss> RawLosses, IList<ReinsuranceProgramme> Programme) //Loss contains the properties Year, EventID, Loss Value
    {
        List<Recoveries> NetRawLosses = new List<Recoveries>(RawLosses.Count * Programme.Count);    //Initiate list with required capacity

        //Loop over each element in RawLosses List and do some calculations
        foreach (var e in RawLosses)
        {                           //<----BREAK POINT HERE (e.Year == x)
            foreach (var layer in Programme.Where(x => x.Type == ReinsuranceType.CATXL))
            {
Run Code Online (Sandbox Code Playgroud)

c# debugging visual-studio-2010

15
推荐指数
1
解决办法
2294
查看次数

Matplotlib savefig 不保存轴

我正在尝试保存一个在 IPython 内联中工作正常的图形,但没有将包含轴和标题的图形保存到磁盘。

我在 matplotlibrc 中默认使用 TKAgg 后端

任何想法这里可能会出现什么问题?我已经清楚地设置了 xlabel 和刻度线在 IPython 内嵌图中正常工作。

   import matplotlib.pylab as plt  
    x = [1,2,3,3]
    y = map(lambda(x): x * 2, x)
    fig = plt.figure()
    ax = fig.add_axes([0,0,1,1])
    ax.set_title("bleh")
    ax.set_xlabel("xlabel")
    ax.plot(x, y, 'r--')
    fig.savefig("fig.png")
Run Code Online (Sandbox Code Playgroud)

Savefig 没有轴标签的图像

matplotlib

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

Scala优雅列表理解如F#

只需使用基本的JDBC接口即可使用Scala读取一些数据.在F#中(使用System.Data.SqlClient命名空间),我们可以执行类似这样的操作,从数据库返回不可变列表.

    let rs = cmd.ExecuteReader()
    [while rs.Read() do yield rs.GetInt32(1)]
Run Code Online (Sandbox Code Playgroud)

在Scala中,这被证明更加困难,据我所知,没有像F#这样的"同时"理解.实际上,我想在Scala中做一些接近F#的事情,而不必使用可变变量 - 如果只是因为它们看起来很难看并添加到代码行中.

这样的东西现在似乎在我的Scala代码中很常见:

 var result = Seq.empty[Int]
 val rs = stmt.executeQuery()
 while (rs.next()) {
     result = result :+ rs.getInt(1) }
Run Code Online (Sandbox Code Playgroud)

scala list-comprehension jdbc

8
推荐指数
3
解决办法
540
查看次数

将SpatialPointsDataFrame转换为R中的SpatialLinesDataFrame

我正在使用HURDAT数据集绘制飓风轨迹.我目前在R中生成了一个SpatialPointsDataFrame对象,它在2004年看起来像这样.

    > str(cluster.2004.sdf)
Formal class 'SpatialPointsDataFrame' [package "sp"] with 5 slots
  ..@ data       :'data.frame': 2693 obs. of  4 variables:
  .. ..$ Sid      : int [1:2693] 1331 1331 1331 1331 1331 1331 1331 1331 1331 1331 ...
  .. ..$ clusterid: num [1:2693] 2 2 2 2 2 2 2 2 2 2 ...
  .. ..$ name     : Factor w/ 269 levels "","ABBY      ",..: 6 6 6 6 6 6 6 6 6 6 ...
  .. ..$ WmaxS    : num [1:2693] 78.9 …
Run Code Online (Sandbox Code Playgroud)

r spatial

7
推荐指数
1
解决办法
4123
查看次数

在F#中使用SqlDataReader

在C#中,我使用sql脚本将数据添加到List中,其中T将是一个具有映射到sql脚本的字段/属性的类.

我怎么能在F#中做到这一点?这篇文章以标准方式使用存储过程.

using (conn)
{
    conn.Open();
    using (SqlCommand cmd = new SqlCommand("dbo.query_here", conn))
    {
    cmd.CommandText = "dbo.query_here";
    cmd.CommandType = System.Data.CommandType.StoredProcedure;
    cmd.CommandTimeout = 600;
    cmd.Parameters.Add(new SqlParameter("@x1", Convert.ToString(x)));
    cmd.Parameters.Add(new SqlParameter("@y1", y));
    cmd.Parameters.Add(new SqlParameter("@z1", z));
    SqlDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
        MyListOfClasses.Add(new MyDataClass(reader.GetInt32(reader.GetOrdinal("x"))           
                                            reader.GetDouble(reader.GetOrdinal("y")),
                                            reader.GetDouble(reader.GetOrdinal("a")),
                                            reader.GetDouble(reader.GetOrdinal("b"))));
    }
    reader.Close();
}
conn.Close();
Run Code Online (Sandbox Code Playgroud)

我意识到F#并不像这样直截了当,但我需要以类似的方式将这些数据放入F#列表中.也更喜欢那些本质上不起作用的建议,并遵循与C#代码类似的模式.

在之前的一个帖子中有人建议使用记录,但这与SqlDataReader无关.最好有一个类列表,这样我就可以在每个项目上使用getter和setter.

我应该在"为什么不只是使用C#"的不可避免的评论之前添加.很明显我可以使用C#,但我正在探索在F#中编写算法的可能性,为此我需要从SQL Server获取原始数据.

c# ado.net f# list sqlclient

6
推荐指数
3
解决办法
2300
查看次数

DefaultIfEmpty上的LINQ NullReferenceException

我正在寻找解决DefaultIfEmpty()扩展方法在LINQ外连接中使用时不获取空值的问题的解决方案.

代码如下:

            var SummaryLossesWithNets = (from g in SummaryLosses
                                     join n in nets
                                     on g.Year equals n.Year into grouping
                                     from x in grouping.DefaultIfEmpty()
                                     select new
                                         {
                                             Year = g.Year,
                                             OEPGR = g.OccuranceLoss,
                                             AEPGR = g.AggregateLoss,
                                             OEPNET = ((x.OEPRecovery == null) ? 0 : x.OEPRecovery),
                                             AEPNET = ((x.AEPRecovery == null) ? 0 : x.AEPRecovery),
                                         });
Run Code Online (Sandbox Code Playgroud)

在List SummaryLosses中,我希望加入到表'nets'中有多年的数据,其中包含多年的子部分.假设x是一个空值,我假设是因为SummaryLosses中的年份与网络中的年份不匹配会在分组列表中创建空值.

如何在这里检查空值?正如您所看到的,我试图在x的属性上检查null,但由于x为null,因此不起作用.

亲切的问候Richard

linq nullreferenceexception defaultifempty

6
推荐指数
1
解决办法
3079
查看次数

F#查询与C#LINQ

与C#相比,这个问题更多地与F#的冗长和清晰度有关.一个相对较小的问题,但是我写的数据库查询越来越烦人.

在C#中,我可以使用LINQ和Entity Framework执行以下操作:

 var q = (from row in db.LAYERS
          where row.LIST1.Field1 == PARAM
          select new MyClass( row.field1, row.field2, row.field3, row.field4)).ToList()
Run Code Online (Sandbox Code Playgroud)

关键在于我只是在查询本身内构建一个新的类列表.而在F#中,这似乎不起作用,为了得到相同的结果,我正在做这样的事情:

    query { for row in db.LAYERS do 
        where (row.LIST1.Field1 = PARAM)
        select row.field1, row.field2, row.field3, row.field4 } 
        |> Seq.map (fun row -> new MyClass(row.field1, row.field2, row.field3, row.field4)
Run Code Online (Sandbox Code Playgroud)

F#要求我在查询序列上做一个映射来获取我想要的列表.

f#

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

F# - GroupBy并将函数应用于第二元组项内的每个属性

我有一个F#类列表,我使用属性来访问数据(我使用的是用C#开发的库).我想将一个属性分组,然后对结果元组的第二项中的每个属性应用单独的函数.

例:

let grouped = list  |> Seq.groupBy (fun x -> x.Year) //group by the year property. Results in Seq<int * seq<myClass>>
                    |> Seq.map (fun (a, b) -> (a, //How to map generic functions to each remaining property in the second tuple?  
Run Code Online (Sandbox Code Playgroud)

希望这对某人有意义.我的第二个元组项是groupBy产生的seq.MyClass中的每个剩余属性都需要具有适用于它的不同功能.在过去总结一个属性,我刚刚做了类似的事情:

|> Seq.map (fun (a, b) -> (a, b |> Seq.SumBy (fun x -> x.myProperty)))
Run Code Online (Sandbox Code Playgroud)

我想使用Seq.map为几个属性做这样的事情.

非常感谢任何帮助,理查德

f# group-by map seq

4
推荐指数
1
解决办法
3488
查看次数