1

RRE は初めてです。rxMerge 関数に問題があります。

異なる数のレベルを持つ因子列によって 2 つの xdf データセットをマージしたいと考えています。一致するレベルのみを保持する内部結合が必要です。次のエラーが表示されます。

エラー: 因子キー 'mat' のレベルが一致しません。rxFactors を呼び出してレベルを同じにしてから、入力ファイルで rxSort を呼び出します。

ここに私のマージ機能があります:

rxMergeXdf(inFile1 = cible_2015_xdf, inFile2 = data_2015,
       outFile = all_data_2015,
       matchVars = "mat",
       type = "inner",
       varsToDrop2 = "ref",
       overwrite=TRUE
       )

出発地と目的地のフライト ( http://www.revolutionanalytics.com/sites/default/files/data-step-white-paper.pdf )の通知で例を見ましたが、出力には一致するレベルの数。両方のデータセットに一意のレベルがあり、レベルは ID 番号です (文字を使用するため、数値に渡すことはできません)。

事前にどうもありがとう

ウーリエル

4

2 に答える 2

1

マージする前に、因子を再平準化して同じ水準にする必要があります。

new_levels <- unique(c(rxGetVarInfo(cible_2015_xdf, varsToKeep = "mat")[[1]][["levels"]],
                       rxGetVarInfo(data_2015, varsToKeep = "mat")[[1]][["levels"]]))

rxFactors(inData = cible_2015_xdf, outFile = cible_2015_xdf, 
          factorInfo = list(mat = list(newLevels = new_levels)),
          overwrite = TRUE)
rxFactors(inData = data_2015, outFile = data_2015, 
          factorInfo = list(mat = list(newLevels = new_levels)),
          overwrite = TRUE)

rxMergeXdf(inFile1 = cible_2015_xdf, inFile2 = data_2015,
           outFile = all_data_2015,
           matchVars = "mat",
           type = "inner",
           varsToDrop2 = "ref",
           overwrite=TRUE)
于 2016-02-18T18:28:51.800 に答える