无法使用 sqldf 对 R 中的函数使用rank()

2024-04-15

arm<-as.data.frame(matrix(c(1,1,1,2,2,6,7,4,9,10),ncol=2))

colnames(arm)<-c("a","b")

这是我在 R 中创建的数据集。

现在我想对 b 列进行排名并按 a 列进行分组。

无论我对语法进行什么更改(例如添加 []、"" 等...),以下代码都会引发此错误

sqliteSendQuery(con,statement,bind.data)中的错误:语句中的错误:靠近“(”:语法错误

我正在使用“sqldf”包。

arm2<-sqldf("select a,
         b,
         rank() over (partition by a order by b) as rank1 
         from arm")

然后我安装了 RH2 软件包,它开始抛出以下错误:

.verify.JDBC.result(s,“无法执行 JDBC 语句”,语句) 中的错误:无法执行 JDBC 语句 select a, 乙、 rank() over(按b的顺序划分)为rank1 来自arm(未找到函数“rank”;SQL语句:select a, 乙、 rank() over(按b的顺序划分)为rank1 来自手臂 [90022-175])

如何在R的sqldf包中的sql函数上使用rank()?


sqldf 使用 SQLite,它不支持rank()功能 -see here http://www2.sqlite.org/cvstrac/wiki?p=UnsupportedSqlAnalyticalFunctions。从你从 H2 得到的错误消息来看,它也没有,尽管它是目前计划的 http://www.h2database.com/html/roadmap.html.

sqldf 能够使用 PostgreSQL 而不是 SQLite,后者确实支持rank():see here https://github.com/ggrothendieck/sqldf#12-how-does-one-use-sqldf-with-postgresql举个例子。然后您发布的代码应该可以工作。

如果您不想使用 PostgreSQL,您可以使用 SQLite 和 sqldf 以正确的顺序获取数据:

sqldf("select a, b from arm 
          order by a, b", drv = "SQLite")

但排名一栏比较困难 - 请参阅一些相关答案:1 https://stackoverflow.com/questions/5682886/retrieve-rank-from-sqlite-table, 2 https://stackoverflow.com/questions/15946580/sql-ranking-query-to-compute-ranks-and-median-in-sub-groups, 3 https://stackoverflow.com/questions/16847574/how-to-use-row-number-in-sqlite

由于您已经在 R 中,您可以使用dplyr,一个原生的 R 包:

library(dplyr)
arm %>% group_by(a) %>%
        mutate(rank = rank(b))

Or data.table,更快的替代方案:

library(data.table)
setDT(arm)[ , rank := rank(b), by = a]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 sqldf 对 R 中的函数使用rank() 的相关文章

  • 如何生成向量的所有组合[重复]

    这个问题在这里已经有答案了 假设我有 3 个绿球 2 个橙球和 8 个黄球 我想订购它们 鉴于所有相同颜色的球都是相同的 如何生成所有可能的序列 在 R 中 使用gregmisc 我可以 balls lt c orange orange g
  • 如何调整ggplot直方图的时间刻度轴

    我正在使用一个数据框 其中一列包含POSIXct日期时间值 我正在尝试使用绘制这些时间戳的直方图ggplot2但我有两个问题 我不知道如何设置 binwidthgeom histogram 我想将每个垃圾箱设置为一天或一周 我尝试提供 di
  • 将summary()写入as.data.frame以在ggplot / R中使用

    请查找 af 数据样本t below 我正在使用以下方法进行竞争风险分析etmCIF来自etm package 产生以下结果 这很好 但需要更好的图形 曾经有一个ggtrans etm函数将数据导入ggplot 然而 这个功能显然被删除了
  • R read_excel:libxls 错误:无法解析文件

    我试图使用 readxl read excel 将 xls 文件读入 R 但它给出了以下错误 Error filepath data xls libxls error Unable to parse file 还尝试了 readxl exc
  • R 中的 NA 替换函数

    我正在尝试替换矩阵中的 NA mat 零 我在用着mat is na mat lt 0 当我有 18946 个变量的 94531 个观察值或更小的矩阵时 效果很好 但我在 22752 个变量的 112039 个观察值的矩阵上尝试它 R 显示
  • 用于清除工作空间和转储存储的 R 全局函数

    我希望创建一个全局函数来清除我的工作区并转储我的内存 我将我的函数称为 cleaner 并希望它执行以下代码 remove list ls gc 我尝试在全局环境中创建该函数 但是当我运行它时 控制台仅打印该函数的文本 在我要获取的函数文件
  • dplyr 中的 Summarize 是否可以不删除数据框中的其他列?

    我有一个包含三列的数据框 我正在尝试进行简单的总结以查找数据框中每个城市的最高温度 但同时保留每个最高温度列出的日期 这是数据框 我们称之为 maxT new ID Date Max TemperatureF 1 TUS 1960 04 0
  • SQL:如何在按部分分组的查询中使用子查询?

    如何在按部分分组的查询中使用子查询 我使用 SQL Server 2008 R2 和 Delphi 2010 我收到此错误 Cannot perform an aggregate function on an expression cont
  • 将 JSON URL 转换为 R 数据帧

    我在将 JSON 文件 从 API 转换为 R 中的数据帧时遇到问题 例如 URL 我尝试了 S O 的一些不同建议 包括将json数据转换为R中的数据框 https stackoverflow com questions 28683769
  • extern 关键字对 C 函数的影响

    在C中 我没有注意到任何影响extern在函数声明之前使用关键字 起初 我认为在定义时extern int f 在单个文件中forces您可以在文件范围之外实现它 然而我发现两者 extern int f int f return 0 an
  • 将值替换为其各自列的名称

    我有一个数据框 Code 401k CVS 101A true 231N true FD54 true 99JB 85F4 true 我试图用相应的列名称 例如 401k 替换 true 字符值 这是我想要的输出 Code 401k CVS
  • 可以使用表通配符创建 sql 查询吗?

    这可能是一个简单的问题 但我无法在网上找到解决方案 任何帮助将不胜感激 我正在尝试在 PHP 中创建一个 SQL 查询 并希望以某种方式将通配符应用于 TABLE 过滤器 可能是这样的 select from table 但是 到目前为止我
  • SQL Server 2008R2 和创建 XML 文档

    论坛上的第一篇文章 因为我真的被这个问题困住了 以下查询正确地将有效的 XML 文档分配给 xTempXML 变量 类型为 xml 注 文档的长度 转换为varchar max 711 select xTempXML select Pres
  • T-SQL:用最新的非空值替换 NULL 的最佳方法?

    假设我有这张表 id value 1 5 2 4 3 1 4 NULL 5 NULL 6 14 7 NULL 8 0 9 3 10 NULL 我想编写一个查询来替换任何NULL值与表中最后一个不为空的值在那一栏里 我想要这个结果 id va
  • 如何获得属于五分位数的x?

    我正在大学学习使用 R 进行计量经济学项目 所以请原谅我的笨拙 基本上 使用并给出 一个矩阵 股票价格 行 天 列 公司股票价格 另一个矩阵 市值 行 天 列 公司市值 我必须收集第三个矩阵每天观察的属于市值分布第一五分位数的股票价格 然后
  • 如何搜索例程的内容/(SP-触发函数)

    我需要在数据库内所有例程的例程主体 存储过程 函数 触发器 中搜索文本 我该怎么做 Thanks SELECT OBJECT NAME object id FROM sys sql modules WHERE definition LIKE
  • 如何通过子 POJO 的属性过滤复合 ManyToMany POJO?

    我有两个像这样的房间实体 Entity public class Teacher implements Serializable PrimaryKey autoGenerate true public int id ColumnInfo n
  • 从 R 环境中删除对象

    我正在阅读 Hadley 的 Advanced R 在第 8 章中 他说我们可以使用以下方法从环境中删除对象 rm 但是 移除该物体后我仍然可以看到该物体 这是我的代码 e lt new env e a lt 1 e b lt 2 e a
  • 在存储过程中验证用户的最简单方法?

    我需要一个存储过程 可以通过发送以下内容来检查登录尝试时他们是否是有效用户login and password查看它们在数据库中是否匹配 有没有一种简单的方法可以做到这一点 如果没有更多信息 我目前能提供的最好信息是 CREATE STOR
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam

随机推荐

  • 将 JPA AttributeConverter 用于布尔 Y/N 字段:“无法呈现布尔文字值”

    我正在实施解决方案here https stackoverflow com a 22368268 26535将 Y N 列转换为布尔值 Basic optional false Column name ACTIVE YN Convert c
  • 使用数字属性的 MVC3 DataAnnotationsExtensions 错误

    我已经安装了 Scott 的 Kirkland DataAnnotationsExtensions 在我的模型中我有 Numeric public double expectedcost get set 在我看来 Html EditorFo
  • 根据磁盘可用空间获取节点IP

    我正在尝试编写一个 Ansible 剧本来检查多个服务器上的磁盘空间 到目前为止 这是我的 Ansible 剧本 hosts all become yes tasks name Check freespace shell df h awk
  • 在第二次编辑后刷新表单[重复]

    这个问题在这里已经有答案了 嘿大家好 我目前正在尝试在更改完成后立即刷新表单 在我的第一个表单上 我按下 创建 按钮 这将打开另一个表单 form2 第二个表单将具有输入字段 并允许您输入填充第一个表单上的组合框的值 在第二个表单上有一个
  • 标题消息就像 Stack Overflow 中一样

    这是我第一次访问堆栈溢出 我看到了一条漂亮的标题消息 其中显示了文本和关闭按钮 标题栏是固定的 非常能吸引访问者的注意力 我想知道你们中是否有人知道获得相同类型标题栏的代码 快速的纯 JavaScript 实现 function Messa
  • openui5:如何在 RowRepeater 中获取当前 JSON 模型元素

    我无法获取绑定到 RowRepeater 元素的当前 JSON 模型元素 对于表和列表 我只需检索当前索引 或多个索引 并根据这些值 指向 JSON 模型中的匹配元素 但是 RowRepeater 元素没有当前索引属性 我觉得我应该能够直接
  • 主题消息可以在activemq中持久化吗?

    我对 JMS 和 ESB 非常陌生 我使用 activemq 作为 JMS 使用 mule 作为 ESB 当我将消息从一个队列转发到另一个队列时 jms 连接器参数 persistentDelivery 为 true 它会在 activem
  • 将部分 Activity/Fragment 保存为图像

    我试图保存我的活动的一部分 没有工具栏和状态栏 我现在拥有的代码可以保存整个屏幕 请参考下图 我现在拥有的代码 llIDCardRootView LinearLayout view findViewById R id ll id card
  • Laravel psr-4 不自动加载

    我有一个在本地运行良好的 Laravel 项目 Mavericks 但 psr 4 下的类未加载到我们的阶段服务器 CentOS 上 每次尝试作曲家更新或运行 artisan 命令时 我都会收到反射 未找到类 错误 我所有的应用程序特定类都
  • 无法将 IBOutlet 连接到 Storyboard

    我最近开始使用故事板为我的 iPad 应用程序创建 iPhone 界面 我已将项目更改为 Universal 而不是 iPad 并在项目摘要屏幕中将所需的故事板分配给其设备 但是当我尝试使用 control drag 将任何元素连接到一段代
  • 如何以编程方式激活“在高 dpi 设置上禁用显示缩放”[重复]

    这个问题在这里已经有答案了 我正在 Visual Studio 2010 上使用 C 开发 Windows 窗体应用程序 我发现如果我使用高 dpi 显示设置 该应用程序会缩放 但是 如果我通过 Windows 资源管理器上的鼠标右键单击菜
  • 在 Visual Studio 2017 中出现未处理的异常后启用编辑

    在 Visual Studio 2017 中出现未处理的异常后如何继续执行 在 2015 及以下版本中 可以通过单击轻松完成此操作Enable Editing它 将调用堆栈展开到异常之前的点 然后就可以编辑执行点 变量和代码 当库抛出异常时
  • 如何使用“here-doc”将行打印到文件?

    基本上 这是我在过去半小时内编程和使用 Google 的结果 试图实现一个简单的事情 从以下位置获取用户输入 STDIN并将它们写入结构化 XML 文件作为输出 下面是我丑陋的代码 bin perl print img URL img lt
  • Akka 流如何不断实现?

    我在用阿卡流 http doc akka io docs akka stream and http experimental 1 0 scala stream index html在 Scala 中进行轮询AWS SQS https aws
  • 在 databrick 上运行时将 PySpark 标准输出和标准错误日志保存到云对象存储

    我正在标准 databricks 集群上运行 PySpark 数据管道代码 我需要保存所有 Python PySpark 标准输出和标准错误消息存储到 Azure BLOB 帐户中的文件中 当我在本地运行 Python 代码时 我可以在终端
  • 如何重新分发使用 Crystal Reports 的 VB 6 应用程序?

    假设目标系统有 Crystal Reports for Visual Studio 2008 我如何将可执行的 VB 6 应用程序与报告文件一起分发 仅移动可执行文件和报告文件是行不通的 我想知道如何创建可再发行包 我们使用CR10 我的建
  • 优化子查询选择每组最后一条记录

    我有这个查询 它是一个依赖查询并且需要很多执行时间 SELECT u id u user name ifnull select longitude from map where user id u id order by map id de
  • Django QuerySet 不返回任何内容

    我有一个国家 地区列表 例如 它们都有自己的网址 www example com al 每个国家 地区都有一个城市列表 但 object list 为空 My View class CityOverview generic ListView
  • 如何使嵌入式视图控制器成为响应者链的一部分?

    我正在使用情节提要开发 Mac 应用程序 我有一个窗口显示NSViewController作为其内容 其中包含一个 容器视图控制器 其中嵌入了NSSplitViewController 预期的行为是NSSplitViewController
  • 无法使用 sqldf 对 R 中的函数使用rank()

    arm lt as data frame matrix c 1 1 1 2 2 6 7 4 9 10 ncol 2 colnames arm lt c a b 这是我在 R 中创建的数据集 现在我想对 b 列进行排名并按 a 列进行分组 无