Я пытаюсь использовать purrr
для применения фильтра и , чтобы изменить переменную, обе на основе значений другого фрейма данных.
# This is the original table
set.seed(100)
dfOriginal <- data.table(age = sample(10:60, 10))
# Following is the second data frame containing one variable which
# I would like to filter by - age criterion
# and then to mutate with - age band
dfAgeBands <- data.table(ageCriterion = c("age > 0 & age <= 20", "age > 20 & age <= 30"),
ageBand = c("Young Adults", "Adults"))
finalDf <- map2(dfAgeBands$ageCriterion, dfAgeBands$ageBand, function(x,y){dfOriginal[.x, ageBands := .y]})
Редактировать: просто исправил код (который был построен для другого набора данных!)
Но это все равно не работает.
Ожидаемый результат будет таким, как показано ниже, в соответствии с правилами, определенными ageCriterion
в dfAgeBands
кадре данных.
age ageBand
1: 56 <NA>
2: 51 <NA>
3: 41 <NA>
4: 36 <NA>
5: 44 <NA>
6: 32 <NA>
7: 19 Young Adults
8: 53 <NA>
9: 28 Adults
10: 29 Adults