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

我有两列: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中最大值的两列时如何排除一个值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>