0

我需要将两个具有以下格式的 .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

我只对验证两个文件中是否存在相同的 ID(例如,此处的 1 和 2)感兴趣(如果 file1 中存在的 ID 也存在于 file2 中)。

有人可以帮我弄这个吗?非常感谢您!

4

1 回答 1

1

你可以这样做:

首先,您使用读取 2 个两个文件readLines

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)

现在你有这 2 个列表:

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

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

match(ll1,ll2)
[1] 1 2
于 2013-03-25T20:30:30.737 回答