当前位置: 首页 > 知识库问答 >
问题:

如何在搜索最大值和最小值时排除 0?

濮阳振
2023-03-14

我有一个包含一些价格值的数据帧。不,我想有一个或最好的情况下有两个数据框,每篇文章的最大值和最小值没有 0 个值。

我用DT这样做(对于maxValue,一切都很完美):

minValue <- setDT(df)[, .SD[which.min(price > 0)], by=number]
maxValue <- setDT(df)[, .SD[which.max(price)], by=number]

但minValue Df显示0值。我也尝试过:

do.call(rbind, tapply(df$price, df$number, FUN = function(x) c(max = max(x), min = min(x))))

但是在这里我不知道如何使用

在最好的情况下,我希望每个产品的最大值和最小值都有dfs。

共有3个答案

缑永年
2023-03-14

这有效吗?

  minValue <- setDT(df)[price!=0, .(MinPrice=min(price)), by=number]
  maxValue <- setDT(df)[price!=0, .(MaxPrice=max(price)), by=number]
张俊茂
2023-03-14

使用< code>base R

f1 <- function(x) c(minPrice = min(x), maxPrice = max(x))
aggregate(price ~ number, FUN = f1, df, subset = price != 0))

do.call(rbind, by(df, df$number, FUN = f1))
df <- data.frame(number = c(1, 1, 1, 2, 2, 3, 3, 3), 
         price = c(0, 3, 2, 4, 3, 1, 2, 0))
谢华彩
2023-03-14

您可以使用dplyr,如:

library(dplyr)
df %>%
  group_by(number) %>%
  filter(price != 0) %>%
  summarise(minPrice = min(price),
            maxPrice = max(price))
 类似资料:
  • 本文向大家介绍在Javascript二进制搜索树中搜索最小值和最大值,包括了在Javascript二进制搜索树中搜索最小值和最大值的使用技巧和注意事项,需要的朋友参考一下 在二元搜索树中,如果我们查看左孩子总是比父孩子小的属性,我们会发现,如果继续向左孩子迭代直到到达没有左孩子的节点,我们基本上会发现BST中最小的元素。 让我们在代码中实现此功能。从现在开始,我们将仅实现该函数的单个版本,即迭代或

  • 问题内容: 我有一个搜索栏,并尝试在步骤1中将值从60设置为180,将第二个设置为190。 不管用。知道如何解决吗? 问题答案:

  • 问题内容: 我在搜索时遇到问题,只是不知道该怎么做。我的文档具有以下形式: 假设会话ID的第一个时间戳是“登录”,最后一个时间戳是“注销”。我希望所有会话都具有所有“登录”和“注销”文档(如果可能,请按排序)。我设法通过聚合获得正确的时间戳: 但是我如何获得相应的文档?我也不介意我是否必须进行2次搜索(一次用于登录,一次用于注销)。我尝试了热门热门文章的汇总和排序工作,但是我总是会遇到解析错误:/

  • 我有一个存储时间跨度数据的表。该表的架构类似于: 我试图计算出每个记录id的开始和结束日期,即最小开始日期和最大结束日期。StartDate不可为null,所以我不需要担心这个问题,但我需要MAX(EndDate)来表示这是当前正在运行的时间跨度。 重要的是,我要保持EndDate的NULL值,并将其视为最大值。 最简单的尝试(如下)无法突出MIN和MAX将忽略NULLS的问题(来源:http:/

  • 本文向大家介绍如何找到R中向量的最小值和最大值的索引?,包括了如何找到R中向量的最小值和最大值的索引?的使用技巧和注意事项,需要的朋友参考一下 在分析项目中进行数据探索时,有时我们需要找到一些值的索引,主要是最小值和最大值的索引,以检查相应的数据行是否包含一些关键信息,或者我们可能会忽略它。此外,如果我们不想忽略它们,有时会根据数据特征将这些值转换为另一个值。 示例

  • 问题内容: 我正在寻找python中整数的最小值和最大值。例如,在Java中,我们有和。python中是否有类似的东西? 问题答案: Python 3 在Python 3中,此问题不适用。普通int类型是无界的。 但是,你实际上可能正在寻找有关当前解释器的字长的信息,在大多数情况下,该信息将与机器的字长相同。该信息在Python 3中仍以形式提供,这是一个有符号的单词可以表示的最大值。等效地,它是