Найти те значения, которые находятся непосредственно ниже заданного набора значений, и вернуть запись из другой переменной - PullRequest
0 голосов
/ 01 марта 2019

У меня есть два фрейма данных:

a <- c(10, 20, 30)
c <- c(1, 50, 100)

df1 <- data.frame(cbind(a, b, c))

x <- c(80, 30, 15)
z <- c(10, 46, 99)

df2 <- data.frame(cbind(x, y, z))

Я хочу найти значения в c, которые находятся непосредственно ниже значений в z, а затем вернуть эквивалентные значения в.

Таким образом, сопоставление z с c даст мне местоположения: 1, 1, 2, и я хочу вывести эти местоположения из (то есть 10, 10, 20)

Редактировать: Для каждого значения в z, которое я хочунайти местоположение значения, которое ниже его в c, а затем вернуть значение в зависимости от этого местоположения

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете использовать outer для сравнения <.Затем colSums должен добавить ИСТИНЫ и дать вам ответ , учитывая, что df1 заказан на c , то есть

colSums(outer(df1$c, df2$z, `<`))
#[1] 1 1 2

или

df1$a[colSums(outer(df1$c, df2$z, `<`))]
#[1] 10 10 20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...