SELECT CONCAT(a.name,' ', a.surname) as "Deluxe drivers", m.producer, m.model
from employer a
INNER JOIN Driver s on s.iddriver=a.idemployer
INNER JOIN Taxi t ON t.idtaxi=s.idtaxi
INNER JOIN Model m ON m.idmodelcar=t.idmodelcar
WHERE m.producer IN ('Audi','Skoda','Honda','Hyundai') AND m.year>2010
GROUP BY a.name, a.surname, m.producer, m.model
ORDER BY 2,3
因此,这几乎是一个基本的SQL查询,但是我需要将其转换为R,并且遇到了一些困难。另外,我不确定是否存在像CONCAT这样的函数,该函数基本上可以将2个不同的列合并为一个,因此名称和姓氏不会分开出现。
有人可以帮助我吗?
答案 0 :(得分:1)
在提问时,您应该以可复制的格式提供数据,这将使我们更容易提供帮助。我将为您提供我认为可以帮助您的功能的指南:
employer$deluxedrivers <- paste(name, surname, sep = ")
%in%
dplyr::group_by()
dplyr::order_by()
dplyr::filter()
merge()
希望这对您有帮助!
此外,如果您想在R中使用SQL,那么还有一个名为sqldf
的软件包可以让您做到!
答案 1 :(得分:1)
您只能使用base R中的函数来完成此操作。
paste()
函数的作用与CONCAT
相同。 merge()
函数的作用与JOIN
语句相同-您可能会发现在选择行和列之前合并数据帧最容易。 %in%
运算符与IN
表达式具有相同的作用。
因为您没有使用聚合函数,所以不需要GROUP BY子句。
通过sqldf
包,您可以将SQL语句应用于合并的数据帧,这可能会缩短R学习曲线。