我在一个办公室工作,SQL Server 是我们所做的一切工作的支柱,从数据处理到清理再到 munging。我的同事擅长编写复杂的函数和存储过程,以有条不紊地处理传入的数据,以便将其标准化并用于报告、可视化和分析项目。在开始这里之前,除了编写最基本的查询之外,我几乎没有使用 SQL 的经验。我的绝大多数分析准备工作都是在 R 中完成的。我的老板坚持要我提高我的 SQL 技能,尽管似乎很少有作业不能更有效地完成,并且使用 R 的代码行数要少得多dplyr、data.table 和 tidyr 等软件包(仅举几例)。我的问题是——这有意义吗?
几周前,我发现自己面临的任务是获取表中满足特定条件的每一行的列名列表,并将它们连接成一个字符串向量。截止日期很紧,当时我遇到了一些障碍,无法完全解决这个问题。我问了我的老板,他又让我的同事写了一个脚本 TSQL 来解决这个问题。当他在做这件事时,我想出了一种方法,可以在 R 中编写一个相当简单的函数并将其应用于数据帧。大约两个小时后,我的同事带着他的剧本回来了。它至少有 75 行,包括两个嵌套的 for 循环。我让他告诉 notify 什么时候完成运行,他说这需要几个小时。同时,我的 R 脚本能够在大约 30 秒内循环遍历约 45,000 条记录。
我是否正确地假设 R 是清理和整理数据的更好选择?也许我办公室的 SQL 开发人员只是无能?我很好奇是否有人使用过 R 和 SQL(或 Python 和 SQL)对此有任何想法。