在另一列上有条件的r中找到最大列值

时间:2019-11-05 20:58:57

标签: r dataframe

我有一个棒球选手信息的数据框:

fig,ax = plt.subplots(1)
ax.add_patch(rect) # Add the patch to the Axes
legend_elements = build_legend(color_map)
ax.legend(handles=legend_elements, loc='upper left')
plt.show()

我想返回击球平均值('AB')大于100的击球平均值('平均值')列的最大值。平均值列中也有'NaN'。

1 个答案:

答案 0 :(得分:1)

如果要返回两个条件为TRUE的整行,则可以执行以下操作。

library(tidyverse)

data <- tibble(
  AB = sample(seq(50, 150, 10), 10),
  avg = c(runif(9), NaN)
)

data %>%
  filter(AB >= 100) %>%
  filter(avg == max(avg, na.rm = TRUE))

第一个过滤器将仅保留AB大于或等于100的行,第二个过滤器将选择其最大的整个行。如果只想获得最大值,可以执行以下操作:

data %>%
  filter(AB >= 100) %>%
  summarise(max = max(avg, na.rm = TRUE))