每次使用SQLDF在列中出现一个单词时,无法获得总和

时间:2019-05-13 00:33:53

标签: sql r sqldf

我有一个巨大的数据集,其中包含一个名为day_of_week的列,该列基本上可以指示发生事故的星期几。在此列中,它列出了"SUNDAY""MONDAY""TUESDAY"等。

我需要做的是弄清楚周日发生了多少事故,但是对于此类,我必须使用SQL来解决问题。

marylandResult是我的数据框的名称,我正在使用X来存储结果。这是我一直在尝试的代码:

X <- sqldf('select marylandResult.day_of_week where marylandResult.day_of_week="SUNDAY"'

星期天是数据库中的所有大写字母,无论是否全部大写,使用SQL代码都无关紧要,但是由于我的代码无法正常工作,因此我尝试遵循所有大写字母。

运行这段代码时,当我看着0 rows or observances时,得到的答案是X。这显然是不正确的,因为我可以看到有很多实例。除此之外,我还在此代码上尝试了多种变体,其中使用了不同的列名来尝试得出答案。通常,我被告知要留意空间,但是我不知道那是否在绊倒我。

X <- sqldf('select marylandResult.day_of_week where marylandResult.day_of_week="SUNDAY"'

X <- sqldf('select marylandResult.case_number where marylandResult.day_of_week="SUNDAY"'

X <- sqldf('select marylandResult.day_of_week where day_of_week="SUNDAY"'

我应该得到2375个结果附近的某个位置,但是到目前为止,我一直得到0。

1 个答案:

答案 0 :(得分:0)

语法为select ... from ... where ...,因此使用末尾注释中显示的测试数据,我们使用以下代码。 (在该问题中提到了不区分大小写,因此添加了collate nocase,但在不需要时可以省略。)

library(sqldf)
sqldf("select count(*) as Count 
  from marylandResult 
  where day_of_week = 'SUNDAY' collate nocase")
##   Count
## 1     2

注意

问题应该是完整且可验证的,包括可复制的输入数据。这次我已经为您提供了。

marylandResult <- data.frame(day_of_week = c("TUESDAY", "SUNDAY", "MONDAY", "SUNDAY"),
  stringsAsFactors = FALSE)