Extreme Optimization™: Complexity made simple.

Math and Statistics
Libraries for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Partners
    • Contact us
Introduction
Deployment Guide
Nuget packages
Configuration
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Data Analysis Library User's GuideData Analysis Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand Data Access Library User's GuideData Access Library User's Guide
Expand ReferenceReference
  • Extreme Optimization
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Nuget packages
    • Configuration
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Data Access Library User's Guide
    • Reference
  • Reference
    • Extreme
    • Extreme.Collections
    • Extreme.Data
    • Extreme.Data.Json
    • Extreme.Data.Matlab
    • Extreme.Data.R
    • Extreme.Data.Stata
    • Extreme.Data.Text
    • Extreme.DataAnalysis
    • Extreme.DataAnalysis.Linq
    • Extreme.DataAnalysis.Models
    • Extreme.Mathematics
    • Extreme.Mathematics.Algorithms
    • Extreme.Mathematics.Calculus
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations
    • Extreme.Mathematics.Curves
    • Extreme.Mathematics.Curves.Nonlinear
    • Extreme.Mathematics.Distributed
    • Extreme.Mathematics.EquationSolvers
    • Extreme.Mathematics.Generic
    • Extreme.Mathematics.LinearAlgebra
    • Extreme.Mathematics.LinearAlgebra.Implementation
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners
    • Extreme.Mathematics.Optimization
    • Extreme.Mathematics.Optimization.LineSearches
    • Extreme.Mathematics.Random
    • Extreme.Mathematics.SignalProcessing
    • Extreme.Providers
    • Extreme.Providers.InteropServices
    • Extreme.Statistics
    • Extreme.Statistics.Distributions
    • Extreme.Statistics.Multivariate
    • Extreme.Statistics.Tests
    • Extreme.Statistics.TimeSeriesAnalysis
  • Extreme.DataAnalysis
    • Accumulator(T, U) Class
    • Aggregator(T, U) Class
    • Aggregator2(T, U) Class
    • Aggregator2Group Class
    • Aggregator2Group(T) Class
    • AggregatorGroup Class
    • AggregatorGroup(T) Class
    • Aggregators Class
    • BoundaryIntervalBehavior Enumeration
    • CategoricalEncoding Class
    • DataFrame Class
    • DataFrame(R, C) Class
    • DataFrameRow(R, C) Class
    • DateTimeExtensions Class
    • DateTimeUnit Enumeration
    • Direction Enumeration
    • Grouping Class
    • Grouping(TKey) Class
    • Histogram Class
    • Histogram(T) Class
    • IAccumulator(T, U) Interface
    • IAccumulator2(T, U) Interface
    • IAccumulator2(T, U, V) Interface
    • IAggregator Interface
    • IAggregator(T) Interface
    • IAggregator2 Interface
    • IAggregator2(T) Interface
    • IDataFrame Interface
    • IGrouping Interface
    • IIndex Interface
    • Index Class
    • Index(T) Class
    • IntervalIndex(T) Class
    • IPivot Interface
    • JoinIndex Class
    • JoinType Enumeration
    • MissingValueAction Enumeration
    • MissingValueException Class
    • MultipleMissingValueAction Enumeration
    • Parameter(T) Class
    • ParameterVector(T) Class
    • Pivot Class
    • Pivot(R, C) Class
    • RankTiebreaker Enumeration
    • Recurrence Class
    • SortOrder Enumeration
    • SpecialBins Enumeration
    • Subset Class
    • TransformedParameter(T) Class
    • TypePreservingAggregatorGroup Class
    • VectorExtensions Class
  • DataFrame Class
    • Properties
    • Methods
  • Methods
    • Append Method Overloads
    • Apply(R, C, T) Method
    • CreateEmpty(R, C) Method
    • FromColumns Method Overloads
    • FromDataTable Method Overloads
    • FromMatrix Method Overloads
    • FromObjects Method Overloads
    • GetRows Method Overloads
    • Join Method Overloads
    • JoinOnNearest(R, C) Method
    • JoinOnSharedColumns(R1, R2, C) Method
    • ReadCsv Method Overloads
    • ReadDelimited Method
    • Resample Method Overloads
    • Stack Method Overloads
    • Unstack Method Overloads
    • WriteCsv(R, C) Method
  • Join Method Overloads
    • Join(R) Method (DataFrame(R, String), DataFrame(R, String), JoinType, String, String)
    • Join(R, C) Method (DataFrame(R, C), JoinType, DataFrame(R, C), Func(C, C), Func(C, C))
    • Join(R1, R2) Method (DataFrame(R1, String), JoinType, DataFrame(R2, String), IList(String), String, String)
    • Join(R1, R2) Method (DataFrame(R1, String), JoinType, DataFrame(R2, String), String, String, String)
    • Join(R1, R2, C) Method (DataFrame(R1, C), JoinType, DataFrame(R2, C), C, Func(C, C), Func(C, C))
    • Join(R1, R2, C) Method (DataFrame(R1, C), JoinType, DataFrame(R2, C), Boolean, C, C)
    • Join(R1, R2, C) Method (DataFrame(R1, C), JoinType, DataFrame(R2, C), IList(C), Func(C, C), Func(C, C))
  • Join(R1, R2, C) Method (DataFrame(R1, C), JoinType, DataFrame(R2, C), IList(C), Func(C, C), Func(C, C))

DataFrameJoinR1, R2, C Method (DataFrameR1, C, JoinType, DataFrameR2, C, IListC, FuncC, C, FuncC, C)

Extreme Optimization Numerical Libraries for .NET Professional
Returns a new data frame by joining a data frame to another on the specified columns of the left data frame and the row index of the right data frame.

Namespace:  Extreme.DataAnalysis
Assembly:  Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.1
Syntax

C#
VB
C++
F#
Copy
public static DataFrame<R1, C> Join<R1, R2, C>(
	this DataFrame<R1, C> left,
	JoinType joinType,
	DataFrame<R2, C> right,
	IList<C> keys,
	Func<C, C> thisKeyModifier = null,
	Func<C, C> rightKeyModifier = null
)
<ExtensionAttribute>
Public Shared Function Join(Of R1, R2, C) ( 
	left As DataFrame(Of R1, C),
	joinType As JoinType,
	right As DataFrame(Of R2, C),
	keys As IList(Of C),
	Optional thisKeyModifier As Func(Of C, C) = Nothing,
	Optional rightKeyModifier As Func(Of C, C) = Nothing
) As DataFrame(Of R1, C)
public:
[ExtensionAttribute]
generic<typename R1, typename R2, typename C>
static DataFrame<R1, C>^ Join(
	DataFrame<R1, C>^ left, 
	JoinType joinType, 
	DataFrame<R2, C>^ right, 
	IList<C>^ keys, 
	Func<C, C>^ thisKeyModifier = nullptr, 
	Func<C, C>^ rightKeyModifier = nullptr
)
[<ExtensionAttribute>]
static member Join : 
        left : DataFrame<'R1, 'C> * 
        joinType : JoinType * 
        right : DataFrame<'R2, 'C> * 
        keys : IList<'C> * 
        ?thisKeyModifier : Func<'C, 'C> * 
        ?rightKeyModifier : Func<'C, 'C> 
(* Defaults:
        let _thisKeyModifier = defaultArg thisKeyModifier null
        let _rightKeyModifier = defaultArg rightKeyModifier null
*)
-> DataFrame<'R1, 'C> 

Parameters

left
Type: Extreme.DataAnalysisDataFrameR1, C
The data frame that serves as the left operand of the join operation.
joinType
Type: Extreme.DataAnalysisJoinType
The type of join operation to perform on the indexes.
right
Type: Extreme.DataAnalysisDataFrameR2, C
The data frame that serves as the right operand of the join operation.
keys
Type: System.Collections.GenericIListC
The keys of the columns in the left data frame that are used in the joins.
thisKeyModifier (Optional)
Type: SystemFuncC, C
A function that modifies a column key of this data frame to make it unique.
rightKeyModifier (Optional)
Type: SystemFuncC, C
A function that modifies a column key of the other data frame to make it unique.

Type Parameters

R1
The element type of the row index of the left data frame.
R2
The element type of the row index of the right data frame.
C
The element type of the column index of the data frames.

Return Value

Type: DataFrameR1, C
The joined data frame.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type DataFrameR1, C. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).
Exceptions

ExceptionCondition
ArgumentNullException

right is .

-or-

keys is .

See Also

Reference

DataFrame Class
Join Overload
Extreme.DataAnalysis Namespace

Copyright (c) 2004-2021 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2021, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.