Соответствие числовых значений в кадре данных - PullRequest
2 голосов
/ 21 марта 2019
a <- c(4000,3500,3000)
b <- c(0.43,0.55,0.61)

test.data <- data.frame(a,b)

Допустим, я хочу получить значение 0,55, ссылаясь на 3500 вместо того, чтобы получать его по строке / столбцу.Как бы я этого достиг?Я думаю, что я мог бы преобразовать a в строку, а затем ссылаться на нее таким образом, но есть ли способ обратиться к числовому значению для извлечения значения в b?

Редактировать: Спасибо всем заваши отличные ответы!

Ответы [ 3 ]

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

Использование data.table -

> setDT(test.data)[a==3500,b]
[1] 0.55

OR

> setDT(test.data)[a==3500]$b
[1] 0.55

Примечание - Во-первых, опция предпочтительнее, чем @Frank, упомянутый в комментарии.

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

Если я хорошо понял, вы можете получить это, как показано ниже:

test.data$b[test.data$a == 3500]
[1] 0.55

Я также хотел бы представить вам dplyr, когда вы начинаете путешествие R:

library(dplyr)
test.data %>%
  filter(a == 3500) %>%
  pull(b)
[1] 0.55
3 голосов
/ 21 марта 2019

Дополнительные параметры.

test.data[, "b"][test.data$a == 3500]
# [1] 0.55

test.data[test.data$a == 3500, "b"]
# [1] 0.55
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...