1

我在 MS Visual Studio 中使用 RevoScaleR 包,我被困在一个步骤上。

我有一个 XDF 文件,其中有一列名为“Total_Admits_Pred”。我有另一个 XDF 文件,其中有一列名为“Total_Admits”。

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

谢谢!

托马斯

4

2 回答 2

3

您可以使用以下命令将列添加到现有 xdf 文件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)

这将创建一个仅包含您想要的两列的内存数据框。与另一个答案相比,这样做的优点是它只将这两列读内存。

于 2017-06-06T04:59:31.663 回答
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)
于 2017-06-05T21:11:06.087 回答