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
  • JoinOnSharedColumns(R1, R2, C) Method

DataFrameJoinOnSharedColumnsR1, R2, C Method

Extreme Optimization Numerical Libraries for .NET Professional
Returns a new data frame by joining two data frames on their shared columns.

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

C#
VB
C++
F#
Copy
public static DataFrame<long, C> JoinOnSharedColumns<R1, R2, C>(
	this DataFrame<R1, C> left,
	JoinType joinType,
	DataFrame<R2, C> right,
	bool sort = true
)
<ExtensionAttribute>
Public Shared Function JoinOnSharedColumns(Of R1, R2, C) ( 
	left As DataFrame(Of R1, C),
	joinType As JoinType,
	right As DataFrame(Of R2, C),
	Optional sort As Boolean = true
) As DataFrame(Of Long, C)
public:
[ExtensionAttribute]
generic<typename R1, typename R2, typename C>
static DataFrame<long long, C>^ JoinOnSharedColumns(
	DataFrame<R1, C>^ left, 
	JoinType joinType, 
	DataFrame<R2, C>^ right, 
	bool sort = true
)
[<ExtensionAttribute>]
static member JoinOnSharedColumns : 
        left : DataFrame<'R1, 'C> * 
        joinType : JoinType * 
        right : DataFrame<'R2, 'C> * 
        ?sort : bool 
(* Defaults:
        let _sort = defaultArg sort true
*)
-> DataFrame<int64, 'C> 

Parameters

left
Type: Extreme.DataAnalysisDataFrameR1, C
A data frame.
joinType
Type: Extreme.DataAnalysisJoinType
The type of join operation to perform.
right
Type: Extreme.DataAnalysisDataFrameR2, C
A data frame.
sort (Optional)
Type: SystemBoolean
If true, sort the resulting data frame on the join column(s).

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: DataFrameInt64, 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 .

InvalidOperationException

The two data frames don't have any columns in common.

See Also

Reference

DataFrame Class
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.