我正在使用MS Visual Studio中的RevoScaleR软件包,而且我坚持了一步。
我有一个XDF文件,其中包含名为" Total_Admits_Pred"的列。我有另一个XDF文件,其中包含名为" Total_Admits"的列。
两个XDF文件具有相同的行数。我想将两个XDF文件合并到一个包含这两列的XDF文件中。我怎么能这样做?
谢谢!
托马斯
答案 0 :(得分:3)
您可以使用rxDataStep
:
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)