在数据框中,我想比较A列和B列,并提取其中A> = B?

时间:2019-03-12 12:20:07

标签: r dataframe

Cars         A      B
Honda        5      3     
Kia          7      5
BMW          4      8
Mazda        6      10
Hyundai      15     12
Lexus        22     19
Toyota       40     50
Jeep         60     50

上图是我的数据框。为此,我想将A列与B列进行比较,并提取A中大于或等于B(A> = B)的值。

我试图通过使用功能

解决此问题

pmax(Cars$A,Cars$B)

但这给了我这个结果- 5,7,8,10,15,22,50,60

我想要的结果- 5,7,15,22,60

2 个答案:

答案 0 :(得分:5)

pmax?pmax中的平行最大值

  

返回输入的(常规或 p arallel)最大值和最小值        价值观。      “ pmax *()”和“ pmin *()”采用一个或多个向量作为参数,        将它们回收到相同的长度,并返回一个向量        参数向量的“平行” 最大值(或最小值)。

也就是说,在每个位置它都会返回较大的值-这就是您在输出中看到的。

您想要的是Cars$A[Cars$A >= Cars$B]

答案 1 :(得分:1)

我正在使用SELECT * FROM orders o CROSS APPLY(VALUES(CONVERT(int,REPLACE(LEFT(CONVERT(varchar(8),CONVERT(time,GETDATE()),109),5),':',''))))V(GD) WHERE o.shipdate >= CONVERT(date, GETDATE()) AND o.pickup > V.GD;

中的示例数据
mtcars

输出:

data("mtcars")
newdf <- data.frame(cars = rownames(mtcars)[1:10])
newdf$A <- sample(1:10,replace = T)
newdf$B <- sample(1:10,replace = T)
newdf$out <- ifelse(newdf$A >= newdf$B, newdf$A, newdf$B)