У меня есть данные LD, иногда необработанный выходной файл из PLINK как ниже (обратите внимание на пробелы — используются для красивого вывода, также обратите внимание на начальные и конечные пробелы):
write.table(read.table(text="
CHR_A BP_A SNP_A CHR_B BP_B SNP_B R2
1 154834183 rs1218582 1 154794318 rs9970364 0.0929391
1 154834183 rs1218582 1 154795033 rs56744813 0.10075
1 154834183 rs1218582 1 154797272 rs16836414 0.106455
1 154834183 rs1218582 1 154798550 rs200576863 0.0916789
1 154834183 rs1218582 1 154802379 rs11264270 0.176911 ",sep="x"),
"Type1.txt",col.names=FALSE,row.names=FALSE,quote=FALSE)
Или красиво разделенный табуляцией файл:
write.table(read.table(text="
CHR_A BP_A SNP_A CHR_B BP_B SNP_B R2
1 154834183 rs1218582 1 154794318 rs9970364 0.0929391
1 154834183 rs1218582 1 154795033 rs56744813 0.10075
1 154834183 rs1218582 1 154797272 rs16836414 0.106455
1 154834183 rs1218582 1 154798550 rs200576863 0.0916789
1 154834183 rs1218582 1 154802379 rs11264270 0.176911", sep=" "),
"Type2.txt",col.names=FALSE,row.names=FALSE,quote=FALSE,sep="\t")
read.csv работает для обоих типов данных:
read.csv("Type1.txt", sep="")
read.csv("Type2.txt", sep="")
fread работает только для Type2:
fread("Type1.txt")
fread("Type2.txt")
Файлы большие, в миллионах строк, поэтому нельзя использовать параметр read.csv
. Есть ли способ улучшить fread
угадай? Другие предложения по пакету/функции?
Я мог бы использовать readLines
, а затем угадать тип файла, или очистить файл с помощью системного вызова, а затем fread
, но это добавит накладные расходы, которых я пытаюсь избежать.
Изменить: информация о сеансе
R version 3.2.0 (2015-04-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
fread
не работает там, где работаетread.csv/read.table
. Вы работаете на линуксе? - person akrun   schedule 26.06.2015awk
. то естьfread("awk '{$1=$1}1' Type1.txt")
- person akrun   schedule 26.06.2015...system call then fread...
, которого я хочу избежать. - person zx8754   schedule 26.06.2015