我需要使用以下格式比较两个.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中)。
有人可以帮我吗?非常感谢你提前!
答案 0 :(得分:1)
您可以这样做:
首先,您使用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)
现在你有了这两个清单:
ll1
[1] "1" "2"
> ll2
[1] "1" "2
要进行比较,您可以使用match
match(ll1,ll2)
[1] 1 2