2013-03-25 6 views
0

Мне нужно сравнить два .txt файлы со следующими форматами, с R:Извлечение из текстового файла в R

строки в file1:

1-11!AIVDM,1,1,,B,[email protected]?w<[email protected]>4?wp1`Oo,0*3D 
1347204643 
2-12$GPRMC,153102,A,6300.774,N,05238.627,W,12.9,186,090912,30,W*79 
1347204664 

(вот почему-то время (1347204643) находится в отдельной строке)

строки в file2:

#1:1347204643:11!AIVDM,1,1,,B,[email protected]?w<[email protected]>4?wp1`Oo,0*3D 
#2:1347204664:12$GPRMC,153102,A,6300.774,N,05238.627,W,12.9,186,090912,30,W*79 

Я заинтересован только в проверке, если тот же идентификатор, который находится в начале строки (например, 1 и 2 здесь), существует в обоих файлах (если идентификатор, существующий в файле1, существует также в файле2).

Может кто-нибудь помочь мне с этим? Заранее большое спасибо!

+0

2-12 $ GPRMC, 153102, A, 6300,774, N, 05238,627, W, 12.9,186 , 090912,30, W * 79 1347204664 на самом деле вторая строка в файле1 ... спасибо! – Mishu

+0

Кроме того, в файле2 строки начинаются с # – Mishu

ответ

1

Вы можете сделать что-то вроде этого:

Сначала вы читали 2 два файла с помощью readLines

ll1 <- readLines(textConnection('#1:1347204643:11!AIVDM,1,1,,B,[email protected]?w<[email protected]>4?wp1`Oo,0*3D 
#2:1347204664:12$GPRMC,153102,A,6300.774,N,05238.627,W,12.9,186,090912,30,W*79')) 
ll2 <- readLines(textConnection('1-11!AIVDM,1,1,,B,[email protected]?w<[email protected]>4?wp1`Oo,0*3D 
1347204643 
2-12$GPRMC,153102,A,6300.774,N,05238.627,W,12.9,186,090912,30,W*79 
1347204664')) 

Есть некоторые виды лечения

#Remove '#` fom the first files 
ll1 <- gsub('#','',ll1) 
#Take only the odd lines from the second file 
ll2 <- ll2[c(TRUE,FALSE)] 

Extract индекс каждой строки с помощью substr

ll1 <- substr(ll1,1,1) 
ll2 <- substr(ll2,1,1) 

Теперь у вас есть это 2 списка:

ll1 
[1] "1" "2" 
> ll2 
[1] "1" "2 

Для сравнения можно использовать match

match(ll1,ll2) 
[1] 1 2 
+0

. Отклоните ответ для ответа. Поскольку у меня на самом деле два файла, содержащих большое количество строк, я пробовал A <-readLines (file.choose()) из файла 1 .., но тогда в A есть только первая строка. Как я могу получить другие строки? Благодаря! – Mishu

+0

Я не знаю ... Здесь стандартное использование 'con <- file (" test1 "); readLines (con);' – agstudy

+0

Большое спасибо! Я буду продолжать пытаться. – Mishu