Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用F#和#x27连接框架;s Deedle其中一个帧具有复合关键点?_F#_Deedle - Fatal编程技术网

如何使用F#和#x27连接框架;s Deedle其中一个帧具有复合关键点?

如何使用F#和#x27连接框架;s Deedle其中一个帧具有复合关键点?,f#,deedle,F#,Deedle,假设我有两个帧,第一帧(Frame)和第二帧(Frame)。我想找到一种连接帧的方法,以便来自firstFrame的合成关键点的第一部分的值与来自secondFrame的关键点的值匹配 以下是我正在使用的框架示例: val firstFrame : Deedle.Frame<(int * int),string> = Premia 1 1 -> 125 2 1 -> 135 3 1 -> 169 1 2 -> 231

假设我有两个帧,第一帧(
Frame
)和第二帧(
Frame
)。我想找到一种连接帧的方法,以便来自firstFrame的合成关键点的第一部分的值与来自secondFrame的关键点的值匹配

以下是我正在使用的框架示例:

val firstFrame : Deedle.Frame<(int * int),string> =

       Premia 
1 1 -> 125    
2 1 -> 135    
3 1 -> 169    
1 2 -> 231    
2 2 -> 876    
3 2 -> 24     

val secondFrame : Deedle.Frame<int,string> =

     year month 
1 -> 2014 Apr   
2 -> 2014 May   
3 -> 2014 Jun   

好问题!这并不像应该的那么容易(这可能与我们讨论的关于连接框架的另一个问题有关)。我认为应该有一个更好的方法来做这件事,我会在这个问题上添加一个链接

也就是说,可以使用这样一个事实,即连接可以对齐不完全匹配的关键点。可以首先将零添加为第二帧中关键点的第二个元素:

> let m = secondFrame |> Frame.mapRowKeys (fun k -> k, 0);;

val m : Frame<(int * int),string> =      
       year month 
1 0 -> 2014 Apr   
2 0 -> 2014 May   
3 0 -> 2014 Jun   

这并不特别明显,但它确实起到了作用。不过,我希望我们能想出一个更好的办法

谢谢。是的,这个链接与我试图最终实现的目标有关——我只是为了方便而使用了索引。我找不到“SortByRowKey”,所以使用了“Frame.orderRows firstFrame”,这就完成了任务。如果有计划开发更好的东西,那么R包dplyr可能值得考虑。
> let m = secondFrame |> Frame.mapRowKeys (fun k -> k, 0);;

val m : Frame<(int * int),string> =      
       year month 
1 0 -> 2014 Apr   
2 0 -> 2014 May   
3 0 -> 2014 Jun   
> firstFrame.SortByRowKey().Join(m, JoinKind.Left, Lookup.NearestSmaller);;

val it : Frame<(int * int),string> =      
       Premia year month 
1 1 -> 125    2014 Apr   
  2 -> 231    2014 Apr   
2 1 -> 135    2014 May   
  2 -> 876    2014 May   
3 1 -> 169    2014 Jun   
  2 -> 24     2014 Jun