首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成用于分析的伪数据

生成用于分析的伪数据
EN

Stack Overflow用户
提问于 2018-03-30 05:27:58
回答 1查看 85关注 0票数 2

我正在尝试生成伪数据来执行一些分析。我想洗牌前6列,然后附加他们与列7向前。

一个小的示例文件可以很好地与脚本配合使用,并给出所需的输出

但是,当我放入一个有1,000行和8644482列的文件时,这个命令永远不会结束这个脚本。

我在这个论坛上读到,对于bigdata,我可以使用

代码语言:javascript
复制
# install.packages("data.table")

library(data.table)

fread("bigDataFile.txt")

它给出了这个错误

代码语言:javascript
复制
possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection: 2

输入文件:

代码语言:javascript
复制
B01 1 0 0 1 -9 C C G G A G
B04 4 0 0 1 -9 C C G G A G
B40 40 0 0 1 -9 T C G G A G
B50 50 0 0 1 -9 T C G G A G
B73 73 0 0 1 -9 C C G G A A
B78 78 0 0 2 -9 C C G G A G
B86 86 0 0 2 -9 T C A A A G
B92 92 0 0 1 -9 T C A G 0 0
B93 93 0 0 2 -9 C C A G A G
B94 94 0 0 2 -9 T C G G G G

输出

代码语言:javascript
复制
B40 40 0 0 1 -9 C C G G A G
B93 93 0 0 2 -9 C C G G A G
B01 1 0 0 1 -9 T C G G A G
B92 92 0 0 1 -9 T C G G A G
B04 4 0 0 1 -9 C C G G A A
B86 86 0 0 2 -9 C C G G A G
B73 73 0 0 1 -9 T C A A A G
B78 78 0 0 2 -9 T C A G 0 0
B94 94 0 0 2 -9 C C A G A G
B50 50 0 0 1 -9 T C G G G G

使用的命令:

代码语言:javascript
复制
x <- read.table("genotypeSample.txt",sep="")

> y <- c(x[sample(1:nrow(x)),1:6], x[,7:12])

> write.table(y,"shufx.txt",row.names=FALSE,col.names=FALSE, quote=F)

除了大文件问题,如果我想用这个脚本创建100个不同的文件,如何在循环中使用这个脚本。

我也尝试过Linux命令来实现这一点。在linux中Shuf -generate随机排列

代码语言:javascript
复制
cut -d" " -f1-6 genotypeSample.txt |shuf > a.txt

paste -d" " a.txt <(cut -d" " -f7- genotypeSample.txt)

for循环测试良好,但如何使用shuf生成100个随机排列呢?

代码语言:javascript
复制
for i in {1..100};do cut -d" " -f1-6 genotypeSample.txt |shuf  > a${i}.txt ;done

for i in {1..100}; do paste -d" " a${i}.txt <(cut -d" " -f7- genotypeSample.txt) > a$i.dat  ; done

我怎么才能修复它?

EN

回答 1

Stack Overflow用户

发布于 2018-03-30 06:01:51

你可以做一次裁剪;也可以去掉中间文件,应该可以提高一些速度。

代码语言:javascript
复制
cut -d' ' -f1-6 genotypeSample.txt > a
cut -d' ' -f7-  genotypeSample.txt > b

for i in {1..100}; 
do 
    paste -d' ' <(shuf a) b > a$i.dat;
done

ps。未测试!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49565300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档