【问题标题】:Sort a table by a column that has multiple repeating ID names按具有多个重复 ID 名称的列对表进行排序
【发布时间】:2021-07-14 20:59:37
【问题描述】:

我正在尝试对使用 tidyr 和 dplyr 包从宽转换为长的表进行排序。

data_long <- gather(data_wide, family, abundance, Phietavirus:Phi29virus, factor_key = TRUE )

这就是结果表的一部分看起来像data table

ID 将针对每种类型的病毒重复。总共有10种病毒。我正在尝试按 ID 号对表格进行排序。我尝试了以下代码,但它给了我一个错误。

data_longID)] 错误:不能对不存在的列进行子集化。 x 位置 5、16、27、38、49 等不存在。 ℹ 只有 3 列。

我认为问题可能是重复的 ID,但我不确定。为了让我继续绘制图表,我需要先对长表进行排序。如果有人可以帮助弄清楚如何排序,将不胜感激!

【问题讨论】:

  • 欢迎来到 SO,请您使用dput(head(data_long)) 并将结果添加到答案中。人们很可能需要查看数据才能为您提供帮助。

标签: r dplyr datatable tidyr


【解决方案1】:

我不确定您的代码出了什么问题(除非您实际上没有一个名为 ID 的列),但您可以尝试使用 arrange()

library(dplyr)
data_long <- data_long %>% arrange(ID)

另外,我认为您可能会在 ] 之前缺少一个逗号,这会使结果没有列(和错误)。

【讨论】:

  • 谢谢艾丽!我试图遵循的脚本使用顺序,但它从未奏效。但只是尝试了你的建议,它奏效了。
  • 很高兴听到这个消息!
猜你喜欢
  • 2018-06-03
  • 2022-01-04
  • 2021-02-09
  • 2014-07-02
  • 1970-01-01
  • 1970-01-01
  • 2016-12-11
  • 2019-09-08
  • 1970-01-01
相关资源
最近更新 更多