匹配数据框中的数值

时间:2019-03-21 19:19:57

标签: r dataframe

a <- c(4000,3500,3000)
b <- c(0.43,0.55,0.61)

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

假设我要通过引用3500而不是按行/列来获取值0.55。我将如何实现?我想我可以将a转换为字符串,然后以这种方式引用它,但是有没有一种方法可以引用数字值来提取b中的值?

编辑:谢谢大家的好评!

3 个答案:

答案 0 :(得分:5)

如果我对它的理解很好,您可以通过以下方式获得它:

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

在您开始R旅程时,我也想向您介绍dplyr

library(dplyr)
test.data %>%
  filter(a == 3500) %>%
  pull(b)
[1] 0.55

答案 1 :(得分:5)

使用data.table-

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

OR

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

注意-首先,该选项是首选,因为注释中提到了@Frank。

答案 2 :(得分:3)

更多选项。

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

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