【问题标题】:Compare and Select Column比较并选择列
【发布时间】:2016-12-19 16:41:35
【问题描述】:

数据集图片:

说明:

上图是我正在处理的数据集的快照。我有这样未定义的套数。我想做的是比较每个集合的 DS 的最后一个值(以黄色突出显示)并选择具有最高 DS 值的集合。

【问题讨论】:

  • 我相信你被否决了,因为没有图像。没有它,这个问题是无法回答的。
  • 我在问题中包含了图片。 AlexR 再次包含图像。
  • @PrinceModi 您似乎删除了图像标记的一些重要部分 - 这就是图像没有显示的原因。
  • 当您的数据在 excel 中时,为什么要使用 R 执行此操作?如果你已经这样做了,你能告诉我们你是如何将这些数据带到 R 中的吗?否则,这看起来您必须首先在 Excel 中准备数据(放入具有 Set/Date/DS/Row 结构的单个表中)。完成后,Excel 将使用数据透视表轻松解决您的任务。
  • @alexR 数据实际上在 R 本身中。我只是将数据集粘贴到 excel 中以便更好地演示。

标签: r compare


【解决方案1】:

我会先将你所有的数据放入list,然后使用lapply为每个data.frame选择最后一条记录,然后找出哪个data.frame包含最大值。

生成数据

我无法获取您的数据,因为它保存在图片中。相反,我自己生成。

set.seed(123)
x1 <- data.frame(DS = rnorm(13), y = letters[1:13])
x2 <- data.frame(DS = rnorm(13), y = letters[1:13])
x3 <- data.frame(DS = rnorm(13), y = letters[1:13])
x4 <- data.frame(DS = rnorm(13), y = letters[1:13])
list_x <- list(x1, x2, x3, x4)

找到最大值

find_max <- which.max(lapply(list_x, function(x) x[nrow(x),]$DS))
list_x[[find_max]]

【讨论】:

  • 这正是我所需要的。它给了我错误,但我明白了逻辑。
  • 如果您可以发布数据示例(遵循 @alexR 的建议),那么 SO 上的某个人可能会帮助您解决错误。
猜你喜欢
  • 2020-05-17
  • 2021-07-14
  • 1970-01-01
  • 1970-01-01
  • 2021-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
相关资源
最近更新 更多