I have a dataframe df
that looks like this
City TreeID Age Diameter
City_1 X 1 6
City_1 Y 2 5
City_2 Y 3 5
City_3 X 4 10
I have a variable nominal
that can be "TreeId"
, "Age"
or Diameter
and another variable city
that has the name of a city stored in string format.
I want to be able to pick up only the values of the column nominal
for the correct city name
An example : city = "City_1"
and nominal = "Age"
, then I should only pick up the values 1
and 2
I searched on here but nothing I could find was adapted to my case because I use variables so I don't know in advance which column I want to choose. I am lost, any help is appreciated. Thanks
CodePudding user response:
Here's a function to do that.
return_value <- function(data, city, nominal) {
data[data$City == city, nominal]
}
return_value(df, 'City_1', 'Age')
#[1] 1 2
return_value(df, 'City_2', 'Diameter')
#[1] 5
CodePudding user response:
You coul use pull
:
library(dplyr)
df %>%
filter(City == "City_1") %>%
pull(Age)
df %>%
filter(City == "City_1") %>%
pull(Diameter)
[1] 1 2
[1] 6 5