添加一列排名

2023-12-20

我有一些数据:

test <- data.frame(A=c("aaabbb",
"aaaabb",
"aaaabb",
"aaaaab",
"bbbaaa")
)

等等。所有元素的长度都相同,并且在我获取它们之前就已经排序了。

我需要创建一个新的排名列,“第一”、“第二”、“第三”,之后的任何内容都可以留空,并且需要考虑平局。因此,在上述情况下,我想得到以下输出:

   A       B
 aaabbb  First
 aaaabb  Second
 aaaabb  Second
 aaaaab  Third
 bbbaaa
 bbbbaa  

我查看了rank()和其他一些使用它的帖子,但我无法让它做我正在寻找的事情。


这个怎么样:

test$B <- match(test$A , unique(test$A)[1:3] )
test
       A  B
1 aaabbb  1
2 aaaabb  2
3 aaaabb  2
4 aaaaab  3
5 bbbaaa NA
6 bbbbaa NA

执行此操作的多种方法之一。可能不是best,但是很容易浮现在脑海中并且相当直观。您可以使用unique因为您收到的是预先排序的数据。

当数据排序时,另一个值得考虑的合适函数是rle,尽管在这个例子中它稍微有点迟钝:

rnk <- rle(as.integer(df$A))$lengths
rnk
# [1] 1 2 1 1 1
test$B <- c( rep( 1:3 , times = rnk[1:3] ) , rep(NA, sum( rnk[-c(1:3)] ) ) )

rle计算向量中相等值的运行长度(以及我们在这里并不真正关心的值) - 所以这又有效,因为您的数据已经排序。

如果你不这样做have在第三个排名项目之后有空白,则更简单(并且更具可读性):

test$B <- rep(1:length(rnk),times=rnk)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

添加一列排名 的相关文章

  • 加载 plyr 包时出现问题

    我使用 R 2 13 1 但未能成功尝试在 R 中加载包 plyr 1 6 我已将其手动安装到目录 R library 中 我的代码是 libPaths R library library plyr 我收到消息 库 plyr 中的错误 pl
  • rgdax(coinbase)数据未按预期收集数据

    我正在尝试使用rgdaxR 包用于下载一些历史价格 我设置了 API 密钥等 并尝试在过去 24 小时内加载 start lt strftime Sys time Y m dT H M SZ tz UTC end lt strftime S
  • 聚合时间

    我的数据包含 1 分钟测量值 我希望将其聚合为 5 分钟和 10 分钟 如何在 10 分钟内将 日 列的数据分组为 5 样本数据2 structure list Day c Monday Monday Monday Monday Monda
  • 使用 != 子集 data.table 也排除 NA

    我有一个 data table 其中有一列NAs 我想删除该列具有特定值的行 恰好是 然而 我的第一次尝试导致我失去了行NA还有 gt a c 1 NA gt x lt data table a x a 1 1 2 3 NA gt y lt
  • 获取非零数据的列意味着

    R 可以获得数据帧非零值的 colMeans 吗 data lt data frame col1 c 1 0 1 0 3 3 col2 c 5 0 5 0 7 7 colMeans data 1 33 4 我想要这样的东西 mean dat
  • 使用 by 参数连接 data.table

    我有两个数据表dx and dy dx lt data table a c 1 1 1 1 2 2 b 3 8 dy lt data table a c 1 1 2 c 7 9 我要参与dy到每一行dx 下面是所需的输出 data tabl
  • 基于列重复数据集中的行,但增加行[重复]

    这个问题在这里已经有答案了 我有一个数据集 其中包含项目名称 开始年份和合同期限 我需要将这个数据集开发成时间序列 例如 我的数据集中的一行是 项目 A 开始年份 2003 年 合同期限 5 我想根据合同期限重复每一行 我的数据集如下所示
  • 将公式传递给 R 中的函数?

    对此的任何帮助将不胜感激 我正在使用 Lumley 调查包 并试图简化我的代码 但遇到了一些小障碍 在我的代码中调用包中的 svymean 函数如下 其中第一个参数是指示我想要哪些变量的公式 第二个参数是该数据集 svymean hq eh
  • 拆分并保存在新的 data.frames 中

    我有一个大 data frame 144 列 我想将其分成每组 3 列 子文件或子 data frame 然后将子 data frame 保存在单独的文件中 换句话说 file1 将包含从 1 到 3 的列 file2 将包含从 6 到 9
  • 直接来自数据的马尔可夫模型图(makovchain 或 deemod 包?)

    我想读取一堆因子数据并从中创建一个可以很好地可视化的转换矩阵 我发现了一个非常好的软件包 称为 heemod 它与 diagram 一起工作得不错 对于我的第一个快速而肮脏的方法 我运行了一段 Python 代码来获取矩阵 然后使用这个 R
  • 在 R 中查找 Windows 用户名

    有没有办法在 R 会话中获取当前的 Windows 用户名或 Windows 主目录 Thanks 抱歉 如果我错过了什么 但我找不到任何东西 你可以做 Sys getenv USERNAME Sys getenv HOME 如果你只是输入
  • 挖泥机子集 (MuMIn) - 如果存在主效应,则必须包括交互作用

    我正在使用 dredge MuMIn 进行一些探索性工作 在此过程中 我想将两个变量设置为仅当它们之间存在相互作用时才允许一起出现 即它们不能仅作为主要效果一起出现 使用样本数据 我想挖掘模型 fm1 尽管它可能没有意义 如果变量 GNP
  • RQuantLib 包不适用于 R 3.5.0

    有没有其他人尝试加载 R 3 5 0 的 RQuantLib 包 我尝试过 以前有效 install packages drat dependencies TRUE drat addRepo ghrr install packages RQ
  • 将角色分成几部分

    我观察到以下特征 l lt mod range1 seq m n 0 1 range2 seq 2 2 0 1 range3 seq 2 2 0 1 在 R 中使用正则表达式我想要拆分l在以下结构中 1 mod range1 seq m n
  • 将儒略日期转换为 PosixCt 日期

    我发现自己在解决这个问题 我需要将 R 中的儒略日期转换为正常日期 YYYY MM DD 我知道我可以指定as Date julian date origin 但我不知道应该提供哪个来源 我的朱利安日期类似于 2458010 2458011
  • 为什么我收到保存错误、软盘错误的消息?

    我最近更新了 R 和 R studio 当我尝试保存文件时 收到一条错误消息 保存 文件名 时出错 驱动器中的软盘错误 将 2 卷序列号 3 插入驱动器 1 这是第一次看到这个错误信息 不知道该怎么办 我也无法 另存为 感谢您的帮助 尝试使
  • 将 dplyr 中的starts_with与部分列名称的向量一起使用

    我想使用 dplyr 选择与字符串向量匹配的某些列 one lt seq 1 10 two lt rnorm 10 three lt runif 10 1 2 four lt 10 1 df lt data frame one two th
  • 在前两个冒号上分割字符串

    我想在前两个冒号上拆分一列字符串 但不在任何后续冒号上拆分 my data lt read table text my string some data 123 34 56 78 100 87 65 43 21 200 a4 b6 c888
  • R中不重复的组合

    我试图获取变量元素长度为 3 的所有可能组合 虽然它部分地与combn 一起工作 但我没有完全得到我正在寻找的输出 这是我的例子 x lt c a b c d e t combn c x x 3 我得到的输出看起来像这样 1 2 3 1 a
  • 将从数据透视表包生成的数据透视表转换为数据帧

    我正在尝试制作一个数据透视表pivottabler包裹 我想将数据透视表对象转换为数据框 以便我可以将其转换为数据表 带有 DT 并在 Shiny 应用程序中渲染它 以便可以下载 library pivottabler pt qpvt mt

随机推荐

  • 裸仓库上的 git diff

    我想看看 gitlab 服务器端上个月 repo 发生了多少变化 cd path to my bare repo git git git dir diff shortstat 1 month ago fatal Unable to read
  • 用于教学的 Python 3 IDE [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 随着 Python 3 的日趋成熟并慢慢获得采用 我们正在尝试在面向 12 18 岁儿童的入门编程课程
  • Bash 循环遍历目录,包括隐藏文件

    我正在寻找一种方法 在 bash 中对我的目录包含的所有内容 即文件 目录和链接 包括隐藏的链接 进行简单循环 如果它可以专门在 bash 中 我会更喜欢 但它必须是最通用的 当然 文件名 和目录名 可以有空格 换行符 符号 除了 和 AS
  • IModelBinder 上的 BindProperty 和 SetProperty 有什么区别

    我正在 Mvc 应用程序中创建自定义模型绑定程序 我想将字符串解析为枚举值并将其分配给模型属性 我已经让它工作了BindProperty方法 但我也注意到有一个SetProperty方法 protected override void Bi
  • PDFBox 按钮执行 javascript 关闭文档

    我的用例是在 pdf 页面上有一个像这样的按钮 实际上是将它们添加到现有页面 但现在我只想看到它对任何东西都有效 Back 它所做的只是关闭当前的 pdf 页面 这个想法是打开多个选项卡 每个选项卡都是一个 pdf 然后当您点击 后退 按钮
  • 从 BigQuery 中的查询返回数组(重复字段)

    我是 BigQuery 和 SQL 的新手 我有一张包含以下详细信息的表格 Schema ID String Nullable BCats String Repeated ID可以重复 Preview ID BCats ABCD BCat2
  • 如何使用美汤进入下一页?

    我必须从网站的 5 个页面中提取信息 每页的末尾都有 下一页 按钮 这是下一个按钮的 html 代码 li class pagination next span class icon arrowright thin pagination b
  • didDiscoverPeripheral“构建失败”错误

    我不确定为什么这段代码无法构建 并且错误消息似乎相当神秘 Code var centralManager CBCentralManager var nrf8001Peripheral CBPeripheral override func v
  • Polymer 1.0:如何在不使用 的情况下将事件传递给子节点元素?

    这个堆栈溢出答案 https stackoverflow com a 32590511 1640892建议使用
  • 调用宏中的其他函数

    如何在宏中调用其他函数 宏 以下似乎不起作用 即使我定义bar with define syntax define bar hello define syntax foo stx syntax case stx a b bar Racket
  • getElementById 其中 Element 在运行时动态创建

    我已经使用innerHTML标签在运行时创建了一个对象 现在我想使用getElementById访问这个元素 当我访问该元素时它返回NULL值 请给我建议任何方向 以便我能够实现这一目标 这是我正在使用的以下代码提示 In HTML div
  • 使用数组设置间隔

    我想使用setInterval函数于jQuery为了每 4 秒创建一个包含一个数组内容的警报 然而 我的警报会在短时间内显示数组的所有值 并且在显示所有值后停止 4 秒 each html5 EDM Coca Cola creativity
  • 使用“hasBackground”进行 Espresso 测试

    如何使用布局背景的颜色进行浓缩咖啡测试 目前使用有背景 https developer android com reference android support test espresso matcher ViewMatchers htm
  • JSON.parse() 不起作用

    我的服务器有一个 json canApprove true hasDisplayed false 我可以像这样解析 json var msg JSON parse canApprove true hasDisplayed false ale
  • 如何在C中定义函数指针数组

    我有一个小问题 我正在尝试动态定义函数指针数组calloc 但我不知道如何写语法 多谢 函数指针的类型就像函数声明一样 但用 代替函数名 所以一个指向 int foo int 将会 int int 为了命名该类型的实例 请将名称放在星号后面
  • 如何从对象的数组记录集中获取嵌套的 HTML 列表?

    我有一个由 SQL 查询返回的对象数组 其中 top id 是我的父 ID 字段 Array 0 gt stdClass Object id gt 1 top id gt 0 name gt Cat 1 1 gt stdClass Obje
  • 如何确定最接近的纵横比

    给定一个矩形形状 S 长宽比为 sx sy 以及另外两个矩形形状 A 长宽比为 ax ay 和 B 长宽比为 bx by 我如何找出形状 A 或 B 中哪一个具有最接近 S 的长宽比 形状的大小并不重要 是 sx sy ax ay 和 sx
  • 获取数据库表中的数据,如果不存在则将其插入,否则返回行 ID

    我有一个包含 date file creation 列的表文件 我想创建一个包含日期文件创建的表日期 当我插入新文件时 我检查表日期是否存在 我返回行 ID 并将其作为外部插入键在表文件中 否则我插入一个新日期并获取其新行 ID 以将其插入
  • 页面中的 Nuxtjs 异步等待在页面刷新时不起作用

    我尝试使用 vuex 和 nuxt js 在页面的 fetch 方法中获取数据 但是每当有人刷新页面时 它都会失败 但当我通过 nuxt 导航导航时 它会工作 所以在我的页面中我有 fetch store params store disp
  • 添加一列排名

    我有一些数据 test lt data frame A c aaabbb aaaabb aaaabb aaaaab bbbaaa 等等 所有元素的长度都相同 并且在我获取它们之前就已经排序了 我需要创建一个新的排名列 第一 第二 第三 之后