В кадре данных я хочу сравнить столбец A и столбец B и извлечь значение, в котором A> = B? - PullRequest
2 голосов
/ 12 марта 2019
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 ]

5 голосов
/ 12 марта 2019

pmax - это параллельное максимальное значение, от ?pmax

Возвращает (обычные или p параллельные) максимумы и минимумы входных значений.'pmax * ()' и 'pmin * ()' принимают один или несколько векторов в качестве аргументов, возвращают их к общей длине и возвращают один вектор, дающий 'параллельные' максимумы (или минимумы) аргументавекторы.

То есть в каждой позиции он возвращает большее значение - это то, что вы видите в своих выходных данных.

То, что вы хотите, это Cars$A[Cars$A >= Cars$B]

1 голос
/ 12 марта 2019

Я использую пример данных из 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)

Вывод:

> head(newdf)
               cars  A B out
1         Mazda RX4  9 9   9
2     Mazda RX4 Wag 10 9  10
3        Datsun 710  6 3   6
4    Hornet 4 Drive  3 6   2
5 Hornet Sportabout  4 5   2
6           Valiant  2 2   9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...