UNPKG

jsdataframe

Version:

a data frame library inspired by R and Python Pandas

1 lines 76.9 kB
{"version":3,"sources":["jsdataframe.js"],"names":["root","factory","define","amd","exports","nodeName","jsdataframe","this","charCodeToStr","charCode","String","fromCharCode","dfFromMatrixHelper","matrix","startRow","colNames","j","nCol","size","nRow","length","columns","allocArray","i","rowArray","Error","newDataFrame","unpackVector","obj","jd","vector","values","dtype","numIsBelowFixedThreshold","num","Math","abs","_NUM_FIXED_LOWER_BOUND","numIsAboveFixedThreshold","_NUM_FIXED_UPPER_BOUND","rightAlign","strVec","maxWidth","nChar","max","padding","rep","strJoin","map","str","slice","makeRowIds","numRows","maxLines","printVec","seq","_toTruncatedPrintVector","_SKIP_MARKER","_ROW_ID_SUFFIX","toPrintString","value","isUndefined","Number","isNaN","coerceToStr","lines","split","_MAX_STR_WIDTH","validatePrintMax","candidate","lowerBound","label","fractionDigits","number","splitArr","toString","packVector","includeMetadata","toDtype","x","result","version","type","vectorProto","isNotMissing","isMissing","elemIfElse","thisElem","cond","other","naValue","elemEq","y","compare","elemObjEq","elemLt","elemGt","numClose","elemMin","elemMax","elemClip","elem","lower","upper","missingLower","missingUpper","numberAdd","numberSub","numberMul","numberDiv","numberMod","meanReducer","stats","n","sum","varReducer","delta","mean","M2","boolAnd","boolOr","boolNot","boolXor","boolSum","strNChar","elemStrIncludes","searchString","position","includes","strStartsWith","startsWith","strEndsWith","endsWith","elemStrIndexOf","searchValue","fromIndex","NaN","indexOf","elemStrLastIndexOf","lastIndexOf","elemRegexSearch","regexp","search","elemRegexTest","test","strToLowerCase","toLowerCase","strToUpperCase","toUpperCase","useStringInterning","func","apply","arguments","internedStr","appendJoinRow","arrayCols","keyDf","leftNonKeyDf","rightNonKeyDf","leftInd","rightInd","indicatorValue","rightIndForKey","keyInd","colInd","push","_cols","leftVal","rightVal","resolveKeyColumns","leftDf","rightDf","opts","leftKeyIdxVec","rightKeyIdxVec","by","leftBy","rightBy","commonNames","names","s","isIn","nUnique","columnIndexing","_names","_dtypesVector","leftNames","Object","keys","rightNames","key","keyNames","ensureVector","validateUniqueColInds","left","right","standardIndexing","selector","maxLen","boolIdxResult","attemptBoolIndexing","resolverOpts","RESOLVE_MODE","INT","resolveSelector","dtypes","COL","_getIndex","exclusionProto","intIdxVector","_selector","undefined","excludeIntIndices","Array","isArray","inferVectorDtype","which","not","resolveMode","index","resultArr","resolveSelectorHelper","newVector","_resolveSelectorHelper","intInds","resolveIntIdx","isNumber","isString","lookupKey","processLookupResults","KEY","arity","expectedDtype","initVectors","validateScalarIsDtype","resolveRangeBound","bound","isStop","includeStop","useIntIndexing","inputInt","checkBounds","isInteger","singleColNameLookup","ensureScalar","cleanKey","ESCAPED_KEYS","valueOf","newNestedIndex","vectors","nestedIndex","create","nestedIndexProto","_dtypes","v","_map","rootMap","lastColInd","currVector","currMap","innerMap","rowNums","numElems","array","validateDtype","proto","PROTO_MAP","_init","mapNonNa","len","reduceNonNa","initValue","reduceUnless","condFunc","combineArrays","array1","array2","skipMissing","arr1Len","arr2Len","outputLen","validateArrayLengths","isSingleton1","isSingleton2","val1","val2","combineMultipleArrays","arrays","thisArg","numArgs","isSingle","resultArray","argArray","cumulativeReduce","accumulatedVal","foundNonMissing","currVal","subsetArray","intIdx","generateColNames","numCols","strCat","colIdxVec","validateCols","colLen","newArray","allDtype","df","dfProto","_index","inferDtype","isBoolean","isDate","enforceVectorDtype","coerceFunc","COERCE_FUNC","defaultDtype","inferredDtype","NA_VALUE","coerceToNum","coerceToBool","string","toISOString","coerceToDate","date","Date","getTime","elemToString","element","a","b","aMissing","bMissing","MISSING_ORDER","reverseComp","compareFunc","argSort","ascending","compareFuncs","asc","compareReverse","compositeCompare","aValue","bValue","sort","VALID_DTYPES","validateInt","varName","validateNonnegInt","validateFunction","validateVectorIsDtype","validateVectorIsNotDtype","validateDataFrameHasNoObjectCols","contains","validateOptsProperties","validProperties","validProps","allOpts","invalidOpts","len1","len2","description","ensureStringVector","prototype","call","isFinite","floor","findIndex","predicate","TypeError","list","start","substr","subjectString","lastIndex","numVecProto","boolVecProto","strVecProto","dateVecProto","rangeProto","byDtypeProto","abstractIndexProto","object","boolean","_private_export","copyArray","stop","step","charCodeSeq","charCodeAt","curr","seqOut","lengthOut","linspace","times","inputArr","inputLength","outputArr","repInd","offset","inputInd","repEach","repNa","colMap","isNa","any","duplicated","dfFromObjArray","objArray","colOrder","definedOrder","foundCols","rowObj","newColArr","k","propertyIsEnumerable","dfFromMatrix","dfFromMatrixWithHeader","unpack","cols","col","vCat","vectorArgs","currArg","argArrLen","colCat","args","_colCatArray","arrLen","colNameArray","rowCat","_rowCatArray","ROW_ELEM_TYPES","SCALAR","ARRAY","VECTOR","DATA_FRAME","elemTypes","colNameArr","elemColCount","min","elemNameArr","currRow","argArrays","internCache","elemStrCat","argLen","join","_MIN_MAX_WIDTH","_MIN_MAX_LINES","_FIXED_NUM_DIGITS","_EXP_FRAC_DIGITS","pow","_PRINT_SEP","printingOpts","_maxWidth","_maxLines","_printCallback","stringToPrint","console","log","getMaxWidth","setMaxWidth","getMaxLines","setMaxLines","setPrintFunction","callback","p","printStr","printToString","rowIds","printVector","printLines","printVectors","colIdx","totalWidth","at","stopWidth","colVec","pop","halfCount","ceil","headRange","rng","tailRange","_toPrintVector","some","toExponential","fracDigits","toFixed","toArray","coerceToStrInterned","pack","dropNa","filter","replaceNa","intIdxVec","sMod","isSingleValue","intIdxArr","head","tail","ifElse","ex","reduce","reduceRight","searchElement","compareFunction","reverse","separator","combine","vargArrays","eq","neq","lt","gt","lte","or","gte","between","inclusive","equals","tolerance","eqFunc","skipNa","ind","idxMin","idxMax","cuMin","cuMax","thisArray","minIndex","minValue","maxIndex","maxValue","pMin","pMax","clip","rank","valDtype","has","valueCounts","valCountObj","counts","unique","keep","replace","describe","union","intersect","setdiff","add","sub","mul","div","mod","sqrt","sign","round","exp","sin","cos","tan","asin","acos","atan","cuSum","stdev","variance","and","xor","all","charAt","strCharAt","trim","strTrim","strSlice","beginSlice","endSlice","elemStrSlice","begin","end","elemSubstr","strIncludes","strIndexOf","strLastIndexOf","regexMatch","elemRegexMatch","matchResult","match","regexSearch","regexTest","strReplace","newSubStr","elemStrReplace","colArray","colName","forEach","toObjArray","numColsUsed","toMatrix","includeHeader","setNames","rename","nameMap","resetNames","mapCols","vec","keepArray","rowSelect","colSelect","rowIdxVec","valuesIsDataFrame","numRowsSelected","newValue","c","cMod","colValue","insertCol","splice","locAt","lookupCols","lookupVec","rowIdx","oldNameArr","numIters","colIndex","colVector","updateCols","nameArray","mapRowObjects","mapRowArrays","mapRowVectors","mapRowDfs","rowDfs","groupApply","nonKeyDf","groupKeyDf","groupIndex","uniqKeyDf","groupResultArr","funcNCols","resultInd","lookup","subsetDf","groupResult","colCount","colCatArr","concat","resultDf","resultNames","transpose","preservedColName","headerSelector","dfToTranspose","nRowOrig","newCol","sortDf","argSortIdxArray","melt","idVars","valueName","idIdxVec","valIdxVec","idDf","varVec","valVec","pivot","pivotCol","valueCol","aggFunc","fillValue","pivotIdx","valueIdx","pivotColDf","relevantCols","trimmedDf","subDf","valueDf","orderedDf","validJoinOpts","how","joinIndicator","leftSuffix","rightSuffix","allLeft","allRight","indicator","keyIdxObj","leftKeyDf","rightKeyDf","rightRowFlags","nonKeyCommonNames","leftNonKeyNames","name","rightNonKeyNames","rightIndex","rightInds","rightKeyDf2","rightNonKeyDf2","mixingNumAndStr","range","_start","_stop","_includeStop","VALID_DTYPES_VEC","byDtype","isValidDtype","invalidDtype","exclusion","isNumDtype","isStrDtype","lookupVectors","startIdx","stopIdx","innerResultArr","numKeys","outputValues","initNumRows","outputRow","outputVectors","keepFirst","keepLast","startInd","rowNumLen","stopInd","null","nestedMap","keyArray"],"mappings":"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