从R中的文本文件中提取

时间:2013-03-25 20:16:24

标签: r

我需要使用以下格式比较两个.txt文件,使用R:

file1中的行:

1-11!AIVDM,1,1,,B,11b4N?@P?w<tSF0l4Q@>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,11b4N?@P?w<tSF0l4Q@>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)中的相同ID感兴趣(如果file1中存在的ID也存在于file2中)。

有人可以帮我吗?非常感谢你提前!

1 个答案:

答案 0 :(得分:1)

您可以这样做:

首先,您使用readLines

阅读2个两个文件
ll1 <- readLines(textConnection('#1:1347204643:11!AIVDM,1,1,,B,11b4N?@P?w<tSF0l4Q@>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,11b4N?@P?w<tSF0l4Q@>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)]

使用substr

提取每行的索引
ll1 <- substr(ll1,1,1)
ll2 <- substr(ll2,1,1)

现在你有了这两个清单:

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

要进行比较,您可以使用match

match(ll1,ll2)
[1] 1 2