2015-07-10 4 views
1

Я хочу прочитать файл ASCII в среде R. Однако файл ASCII не является разграничены, и данные не является непрерывным (есть некоторые пробелы между переменными), поэтому для того, чтобы прочитать данные я использовал ниже синтаксис т.е.Чтение файла без разделителей без особых шаблонов в данных

test <- read.fwf("D:/R_process/ASCII.txt", width = c(10, 4, 1, 4, 9, 9, 1,1,1,1,1,1,1,3,8)) 

Теперь я могу прочитайте его, но чтение данных неверно. Фактически, мой выход должен иметь только данные применимых переменных, но не пустые данные. Ниже приведены данные ASCII. Пожалуйста, дайте мне знать, как написать синтаксис для чтения только применимых данных в файле.

Спасибо за вашу помощь заранее.

Вот данные:

000000000120151 04 0.766696   1       1000000000 010 

000000000220151 04 1.458186   1       1000100000 020 

000000000320151 04 0.185492   1       1000000000 015 

000000000420151 04 0.961584   1       1000000000 003 

000000000520151 04 0.650091   2       0001000000  

000000000620151 04 0.430350   1       1000000000 020 

000000000720151 04 3.192895   2       1011000000 000 

000000000820151 04 0.617127   1       1010100000 015 

000000000920151 04 0.399207   1       1000000000 010 
+0

Вероятно, я не ясно, в моем предыдущем объяснении я надеюсь, что так ... В общем, если я читаю в среде SPSS я использовать переменную начальное и конечное положение колонок для чтения конкретной переменной, так что я SPSS код будет СЕРИЙНЫЙ 1-10 ГОД 11-14 ВОЛНА 15 CNTR 16-19 ИВП 20-28 SMK Brand1 71 Brand1 72 Brand1 73 Brand1 74 Brand1 75 Brand1 80 АВС 82-84 Main 101-108 .. теперь я хочу прочитать то же самое с R то есть только применимые данные столбца/переменной не нуждаются в пустых данных. – Jagadish

+0

Я думал, что мой ответ будет читать данные, игнорируя пустые данные, не так ли? Не могли бы вы представить пример вывода? –

+0

@ Jagadish делает 'strip.white' не делать то, что вы хотите? Вы также можете использовать отрицательные числа в ширину для пропуска столбцов. –

ответ

1
read.table("D:/R_process/ASCII.txt", sep = " ") 

EDIT После @Nick K комментарий ниже, новый ответ:

Я понимаю, вы просто неправильные ширины:

read.fwf("D:/R_process/ASCII.txt", width = c(10, 4, 1, 4, 9, 12, 35, 4)) 
+0

Это не будет работать для файла OP - цифры в 4-м столбце должны быть прочитаны отдельно. –

1

Вы можете использовать strip.white на read.fwf.

test <- read.fwf("D:/R_process/ASCII.txt", 
    width = c(10, 4, 1, 4, 9, 9, rep(1, 8), 3, 8), 
    strip.white = TRUE) 
Смежные вопросы