Home > Software engineering >  Get values in Dataframe based on another vector
Get values in Dataframe based on another vector

Time:10-26

I have a dataframe asd. I need to get values in column b based on matching values in another vector

asd <- data.frame(a = c("a","b", "c"), b = c(1,3,4), c = c("g", "f", "h"))
sel_val <- c("a", "c")
asd$b[asd$a == sel_val]
[1] 1
Warning message:
In asd$a == sel_val :
  longer object length is not a multiple of shorter object length

Expected output

[1] 1 4

CodePudding user response:

You will want to match what values of asd$a are in sel_val:

asd[asd$a %in% sel_val,]$b

CodePudding user response:

With match:

asd$b[match(sel_val, asd$a)]
#[1] 1 4
  •  Tags:  
  • r
  • Related