a <- c(4000,3500,3000)
b <- c(0.43,0.55,0.61)
test.data <- data.frame(a,b)
假设我要通过引用3500而不是按行/列来获取值0.55。我将如何实现?我想我可以将a
转换为字符串,然后以这种方式引用它,但是有没有一种方法可以引用数字值来提取b
中的值?
编辑:谢谢大家的好评!
答案 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