предположим, у меня есть числовой вектор, например:
x <- c(1.0, 2.5, 3.0)
и data.frame:
df<-data.frame(key=c(0.5,1.0,1.5,2.0,2.5,3.0),
value=c(-1.187,0.095,-0.142,-0.818,-0.734,0.511))
df
key value
1 0.5 -1.187
2 1.0 0.095
3 1.5 -0.142
4 2.0 -0.818
5 2.5 -0.734
6 3.0 0.511
Я хочу извлечь все строки в df $ key, которые имеют одинаковые значения, равные x, с результатом вроде:
df.x$value
[1] 0.095 -0.734 0.511
Есть ли эффективный как это сделать, пожалуйста? Я пробовал data.frame, hash package и data.table, но безуспешно. Спасибо за помощь!
Спасибо, ребята. Я действительно пробовал аналогичную вещь, но получил df $ key и x поменял местами. Возможно ли это сделать с помощью функции hash () (в пакете 'hash')? Я вижу, что хэш может делать что-то вроде:
h <- hash( keys=letters, values=1:26 )
h$a # 1
h$foo <- "bar"
h[ "foo" ]
h[[ "foo" ]]
z <- letters[3:5]
h[z]
containing 3 key-value pair(s).
c : 3
d : 4
e : 5
Но похоже, что он не принимает массив в своей цепочке ключей, например:
h[[z]]
Error in h[[z]] : wrong arguments for subsetting an environment
, но мне нужны значения только как в векторе, а не в хеше. В противном случае было бы идеально, чтобы мы могли избавиться от data.frame, используя некую «настоящую» концепцию хеширования.