【问题标题】:r sqldf select statement not working as expectedr sqldf select 语句未按预期工作
【发布时间】:2017-05-12 07:38:20
【问题描述】:

我正在尝试使用 sqldf 创建一个数据框,它是原始数据框的子集。

tweets.df 是一个由 19 个变量组成的数据框。其中一个变量称为位置。

数据示例如下所示。

 tweets.df$location
 [1] ""                              ""                         "Brooklyn, NY"                    
 [4] ""                              ""                         ""                                
 [7] "Brooklyn, NY"                  "Hope Eternal"             "Boston, MA" 

尝试运行 sql 语句会产生以下结果

sqldf("select * from 'tweets.df' where  'tweets.df$location' like '%Brook%'")
[1] text  favorited  favoriteCount   replyToSN   created  truncated   replyToSID     
[8] id    replyToUID statusSource    screenName  retweetCount  isRetweet    retweeted      
[15] longitude  latitude    location    language   profileImageURL
<0 rows> (or 0-length row.names)

运行 sqldf("select * from 'tweets.df'") 返回整个数据框。

包含 LIKE 子句的 select 语句不返回任何行有什么问题?

【问题讨论】:

  • 没有 sqldf:tweets.df[ grepl("Brooklyn", tweets.df$location), ]
  • 阅读minimal reproducible example,了解如何提问。特别是,您需要以可重现的形式提供输入的最小版本。

标签: r twitter sqldf


【解决方案1】:

我认为这应该可行:

sqldf("select * from 'tweets.df' where  location like '%Brook%'")

#location
#1 Brooklyn, NY
#2 Brooklyn, NY

在 SQL 中,它已经知道 locationtweets.df 的一部分,因此无需使用 tweets.df$location 重做。

【讨论】:

    【解决方案2】:

    正确的代码如下

    sqldf('select * from tweets.df where location ="%Brook%"')
    

    试试这个代码,它应该可以工作!

    【讨论】:

    • 抱歉,但是 tweets.df 是一个对象数据框?您是否创建了数据框 tweets.df 还是 R 中已包含数据集?
    • 我创建了数据框。 Mike 的回答解决了我的问题。
    猜你喜欢
    • 2020-03-05
    • 2017-10-27
    • 1970-01-01
    • 2012-08-16
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    相关资源
    最近更新 更多