我在查询 .txt 文件中的某些行时遇到问题。我已经尝试了很多东西并在网上搜索了几天没有解决方案。你是我最后的希望。
所以,我有场所.txt 文件,其中包括;
VenueID,VenueName,Latitude,Longitude,CategoryID
0,Jack's Bar,40.42884343951221,-79.98663783073425,4bf58dd8d48988d118941735
1,Diesel Club Lounge,40.42888924,-79.98248641666666,4bf58dd8d48988d1e9931735
2,Casey's Draft House,40.42882016666667,-79.98013614,4bf58dd8d48988d116941735
3,Carson City Saloon,40.42888806,-79.98406728333333,4bf58dd8d48988d11d941735
为数千个场地。
我将此文件导入 R 使用;
venues= read.csv('venues.txt')
我使用 sqldf 包来查询这个文件并且它工作。但是,我注意到我无法检索数据/查询某些场所(主要是场所 ID 40000 和 60000 之间的场所)。比如我不能查询venueID 59900;
> sqldf("select * from venues where venueID=59900 ")
[1] VenueID VenueName Latitude Longitude CategoryID
<0 rows> (or 0-length row.names)
然而,我什至可以找到文件中的最后一个场地,场地 ID 85927;
> sqldf("select * from venues where venueID=85927 ")
VenueID VenueName Latitude Longitude
1 85927 School Of Information Sciences University Of Pittsburgh 40.44739203700654
CategoryID
1 -79.95260743126077
问题是我尝试导入这个文件并以不同的方式查询它,但没有结果!!
我通过打开文本文件查看了这些场所,一切正常;他们的所有信息都包含并用逗号分隔。
为了确保这一点,我什至制作了新的 testven.txt 文件,并复制了一些“未检索到的”场地信息并将其传递到 testven.txt 中。当我导入此文件并查询场所 ID 59900 时,我得到了结果并且它有效??
> testven= read.csv('testven.txt')
> sqldf("select * from testven where venueID=59900 ")
VenueID VenueName Latitude Longitude CategoryID
1 59900 Double Deuce 40.42993 -79.77924 4bf58dd8d48988d103941735
我不知道出了什么问题,它正在杀死我。
我真的很感谢你的意见,因为我真的尝试了我能想到的一切,而且时间对我来说至关重要。
更新:
这是场地文件的结构:
> str(venues)
'data.frame': 61357 obs. of 5 variables:
$ VenueID : Factor w/ 60853 levels "-79.70628261566162",..: 82 83 10724 19015 30126 33116 38172 47687 57814 59741 ...
$ VenueName : Factor w/ 49345 levels "","'Da Crib",..: 21549 12770 8624 8178 22268 39033 14634 23980 39697 24834 ...
$ Latitude : Factor w/ 44099 levels "","-79.92486689605576",..: 17039 17077 17018 17076 17074 16923 17048 23856 23856 16035 ...
$ Longitude : Factor w/ 42204 levels "","-79.520651",..: 20023 19375 19026 19632 19222 18712 19526 20696 20530 10396 ...
$ CategoryID: Factor w/ 1007 levels "","-79.70832109451294",..: 678 912 674 687 674 674 695 691 687 695 ...
这是 testven 文件的结构:
> str(testven)
'data.frame': 27 obs. of 5 variables:
$ VenueID : int 59895 59896 59897 59898 59899 59900 59901 59902 59903 59904 ...
$ VenueName : Factor w/ 27 levels "$crilla Villa",..: 21 25 2 18 4 8 15 7 12 27 ...
$ Latitude : num 40.4 40.4 40.5 40.5 40.4 ...
$ Longitude : num -79.8 -80 -80 -80 -79.8 ...
$ CategoryID: Factor w/ 16 levels "4bf58dd8d48988d103941735",..: 16 8 5 1 1 1 13 1 12 14 ...
令人惊讶的是,列的类型存在差异!!!即使 testven 文件是场所文件的子集。