Мне нужно написать функцию, которая использует строковый аргумент в теле для создания имени столбцов. Например,
dt1 <- data.table( Col_1999_L = c(6,7,8,9,10),
Col_1999_R = c(1,-2,3,-4,5),
Col_2001_L = c(-8-3,5, 2,-1),
Col_2001_R = c(-1,2,-3,4,5)
)
Здесь 1999, 2001 действительно представляют годы. Мой вывод должен быть таким же, как в dt2, где я создаю новые столбцы, где проверяются некоторые условия.
dt2 <- dt1 %>%
select(c("Col_1999_L", "Col_1999_R")) %>%
mutate(
New1 = if_else(Col_1999_L >= 0, "pos", "neg"),
New2 = case_when(
Col_1999_L >=0 & Col_1999_R >=0 ~ "pos",
Col_1999_L >=0 & Col_1999_R < 0 ~ "neg",
))
dt2
Мне действительно нужно написать функцию, которая создает для каждого года таблицу, подобную df2.
Я пробовал что-то вроде этого (что неправильно):
my_function <- function(dt, Year) {
dt %>%
mutate(
New1 = if_else(Col_"Jahr"_L >= 0, "pos", "neg"),
New2 = case_when(
Col_"Year"_L >=0 & Col_"Year"_R >=0 ~ "pos",
Col_"Year"_L >=0 & Col_"Year"_R < 0 ~ "neg"))
}
my_function(dt1, 1999)
Любая помощь о том, как написать это правильно? Спасибо