gpt4 book ai didi

r - 生成用于分析的伪数据

转载 作者:太空狗 更新时间:2023-10-29 12:39:49 25 4
gpt4 key购买 nike

我正在尝试生成伪数据来执行一些分析。我想洗牌前 6 列,然后将它们附加到第 7 列之后。

一个小样本文件可以很好地处理脚本并给我所需的输出

但是当我放置一个包含 1000 行和 8644482 列的文件时,命令永远不会完成 使用此脚本。

我在这个论坛上看到我可以使用大数据

# install.packages("data.table")

library(data.table)

fread("bigDataFile.txt")

它给出了这个错误

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

输入文件:

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

输出

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

使用的命令:

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 - 生成随机排列

cut -d" " -f1-6 genotypeSample.txt |shuf > a.txt

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

for 循环测试正常,但我如何使用 shuf 生成 100 个随机排列

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

我该如何解决?

最佳答案

切割一次即可;还消除了中间文件,应该加快一些。

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. 未经测试!

关于r - 生成用于分析的伪数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49565300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com