在R中的.txt文件中查询/检索某些行没有结果

时间:2013-11-10 18:32:57

标签: r csv sqldf

我在查询.txt文件中的某些行时遇到问题。我已经尝试了很多东西并在网上搜索了几天没有解决方案。你是我最后的希望。

所以,我有venues.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。当我导入这个文件并查询venuesID 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文件是场地文件的子集。

0 个答案:

没有答案