首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >选择SQL和R中的随机数据

选择SQL和R中的随机数据
EN

Stack Overflow用户
提问于 2017-07-01 15:33:08
回答 2查看 167关注 0票数 0

我有以下SQL-Server代码:ABS(checksum(newid())%14

在0到13之间产生统一分布的随机数。

更具体地说,我的SQL表中有一个列,它具有这些随机数。在R中做了一些分析,我现在使用Microsoft/ XDF文件将这个SQL表导入到R中。我想创建一个测试和培训集80%-20%的这一数据的基础上,本专栏。你知道我会怎么做吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-03 01:11:58

您可以使用两个rxDataStep来手动完成此操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
train <- rxDataStep(infile, "train.xdf", rowSelection=random_number < 11)
test <- rxDataStep(infile, "test.xdf", rowSelection=random_number >= 11)

当截止值为0.8*13时,如果要使用Xdf文件处理大量数据,请考虑安装dplyrXdf。它允许您使用dplyr谓词和管道,将Xdfs视为数据帧。你可以用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
devtools::install_github("revolutionAnalytics/dplyrXdf")

上述代码将成为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
train <- filter(infile, random_number < 11, .outFile="train.xdf")
test <- filter(infile, random_number >= 11, .outFile="test.xdf")

或者,您可以从输入中创建一个因素变量,并对此调用rxSplit

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rxDataStep(infile, infile,
    transforms=list(splitVar=factor(random_number < 11, levels=c("train", "test")))
lst <- rxSplit(infile, splitByFactor="splitVar")
票数 1
EN

Stack Overflow用户

发布于 2017-07-01 15:44:39

更新:,因为它是一个.XDF文件,所以我会使用rxSplitXdf函数。以下是一篇深入讨论这一问题的文章,并举例说明:

https://learn.microsoft.com/en-us/r-server/r-reference/revoscaler/rxsplitxdf

类似于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rxSplitXdf(inFile, outFileSuffixes = c("train","test"),  
         numOutFiles = 2, splitBy = "rows", 
         rowSelection = (random number >=7))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44866256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文