从其他2个xdf文件制作单个xdf文件

时间:2017-06-05 20:24:22

标签: r visual-studio microsoft-r

我正在使用MS Visual Studio中的RevoScaleR软件包,而且我坚持了一步。

我有一个XDF文件,其中包含名为" Total_Admits_Pred"的列。我有另一个XDF文件,其中包含名为" Total_Admits"的列。

两个XDF文件具有相同的行数。我想将两个XDF文件合并到一个包含这两列的XDF文件中。我怎么能这样做?

谢谢!

托马斯

2 个答案:

答案 0 :(得分:3)

您可以使用rxDataStep

将列添加到现有xdf文件中
xdf1 <- RxXdfData("file1.xdf")  # dataset containing Total_Admits_Pred
xdf2 <- RxXdfData("file2.xdf")  # dataset containing Total_Admits

rxDataStep(xdf1, xdf2, varsToKeep="Total_Admits_Pred", append="cols")

这将导致file2.xdf包含其所有预先存在的列,加上Total_Admits_Pred

另一种方法是使用dplyrXdf包:

devtools::install_github("RevolutionAnalytics/dplyrXdf")

df <- data.frame(Total_Admits_Pred=xdf1$Total_Admits_Pred,
                 Total_Admits=xdf2$Total_Admits)

这将创建一个内存数据框,只包含您想要的两列。与其他答案相比,它的优势在于它只将 这两列读入内存。

答案 1 :(得分:1)

你会做这样的事情:

xdf_df1 <- rxImport("<path/to/xdf1>")
xdf_df2 <- rxImport("<path/to/xdf2>")

xdfOut <- RxXdfData("<path/to/merged/xdf>") # Should not already exist

# This assumes that xdf2 was the one containing "Total_Admits_Pred"
# and that xdf1 contained "Total_Admits", you'll have to adjust this
# based on your data.
xdf_df1[["Total_Admits_Pred"]] <- xdf_df2$Total_Admits_Pred 

# Verify the Data Frame is correct
head(xdf_df1)

# Export it
rxDataStep(inData = xdf_df1, outFile = xdfOut)