0

我在查询 .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 文件是场所文件的子集。

4

0 回答 0