r - 比较R中最大值的两列时如何排除一个值

标签 r max

我有两列:A 和 B,每列的值从 1 到 7。我需要获得两列之间的最大值,不包括值 7,我该怎么做?或者在 A 有 7 的情况下,我保留 B 的值,这对我更有用,例如:

A <- c(1,1,1,3,2,4,2,5,6,7)
B <- c(7,3,6,7,4,1,6,7,3,4)
df <- data.frame(A, B)

Expected results: 1,3,6,3,4,4,6,5,6,4 

最佳答案

一种选择可能是:

with(df, pmax(A * (A != 7), B * (B != 7)))

 [1] 1 3 6 3 4 4 6 5 6 4
处理缺失值:
with(df, pmax(A * (A != 7), B * (B != 7), na.rm = TRUE))
还考虑负值:
with(df, pmax(A * (A != 7)^NA, B * (B != 7)^NA, na.rm = TRUE))

关于r - 比较R中最大值的两列时如何排除一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67039652/

相关文章:

sql - PostgreSQL MAX 和 GROUP BY

r - 在 ggplot 中将 y 轴标签设为粗体(x 轴设置为粗体但 y 轴标签不变)

r - Shiny server.R 上传库失败

arrays - 在一个衬里中选择数组中的 n 个最大值

c - 我的最低限度部分没有显示真正的最低限度

sql - 选择第二个最大值

c - C中三个 float 中最快的最小最大值

r - R 中的回退和可选依赖项以 CRAN 方式打包?

R 无法以 UTF-8 打开

r - 使用 tryCatch 在函数内自定义错误消息