2015-05-04 13 views
0

Некоторые из выходных файлов, которые я использую, являются нестандартными форматами с пространственным разделением с нестандартными расширениями (.out), которые имеют смысл только для конкретной программы, которую я использую. Например, я мог бы получить выходной файл для расходов воды, которая выглядит как: waterbalance.outПреобразование нестандартного файла в .csv в R

Я могу открыть эти файлы в Excel при открытии файла в качестве пространства файла с разделителями и начать импорт в строке 3.

Как я могу читать такие типы файлов в R, чтобы я мог конвертировать в .csv?

enter image description here

+1

Вы можете указать параметр '' sep' '(https://stat.ethz.ch/R-manual/R-devel/library/utils/html/read.table.html) как 'read.csv 'и' fread' (для эффективного чтения). – m0nhawk

+1

Я думаю, что R может обрабатывать нестандартные расширения без проблем. Ситуация, связанная с пространством, более тяжелая. У него не будет умников справляться с неоднозначными ситуациями, которые вы можете легко продемонстрировать, как вы показали. – duffymo

+1

Вы можете попробовать, например, 'read.table (yourfilename, sep =" \ t ", header = TRUE, comment.char =" 0 ")' (пропустить строки, начинающиеся с 0, использовать вкладку в качестве разделителя) или 'read.table (yourfilename, sep = "", header = TRUE, sip = 2) '(пропустите первые две строки, используйте пробел как разделитель). – lukeA

ответ

2

Скажем, у вас есть разделенных пробелами файла:

name grade percent 
john 1 0.3 
brian 2 0.25 
joshua 5 1.1 

Вы можете указать разделители для read.csv:

> read.csv("test.ssv", sep=" ") 
    name grade percent 
1 john  1 0.30 
2 brian  2 0.25 
3 joshua  5 1.10 

Кроме того, fread из data.table способен автоматически анализировать :

> library("data.table") 
> fread("test.ssv") 
    name grade percent 
1: john  1 0.30 
2: brian  2 0.25 
3: joshua  5 1.10 
+0

Наконец-то это заработало, используя аргументы пропуска и dec. Благодаря! – SoilSciGuy