Посмотрите значение в кадре данных из одного вектора - PullRequest
0 голосов
/ 03 ноября 2018

Я пробовал разные вещи здесь, но не получил желаемых результатов. То, что я пытаюсь сделать, это использовать вектор v1 <- 22201691 найти это число из двух строк df. Затем заполните данные из df1$NC2 в другом векторе. Выведите

df1

RFC        NC2
22294961   239
22200691   239
22201691   239
22701619   344
22717619   344

Я хочу использовать v1 для поиска и сопоставления df1$RFC, и мой вывод будет df1$NC2. Так что в моем примере my_output = 239

Вот что я попробовал:

#this worked sometimes but not all the time.
Output<- df1[(1:dim(df1)[1])[df1[,1]==v1],2]  

#no luck with this one  
vlookup_Output <- function(){
df1%>% 
filter(NC2 %in% c("RFC", "NC2")) %>% 
pull(v1) } 

Я также пытался использовать функции слияния, но, поскольку v1 - это число, попытка слияния df1 тоже не сработала.

Как всегда, заранее спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Если вы хотите tidyverse решение, вот оно.

library(dplyr)

vlookup_Output <- function(DF, x, col, out){
  DF %>% 
    filter(get(col) %in% x) %>% 
    pull(out) 
} 

v1 <- 22201691
vlookup_Output(df1, v1, "RFC", "NC2")
#[1] 239

Данные.

df1 <-
structure(list(RFC = c(22294961L, 22200691L, 22201691L, 22701619L, 
22717619L), NC2 = c(239L, 239L, 239L, 344L, 344L)), class = "data.frame", row.names = c(NA, 
-5L))
0 голосов
/ 03 ноября 2018

Это должно работать:

my_output <- df1$NC2[df1$RFC %in% v1]

Если значение берется из другого кадра данных, то:

df2 <- data.frame(V1 = c(22201691))

df1$NC2[df1$RFC %in% df2$V1]
...