Я пытаюсь написать функцию, которая использует сбор тидира и которую я могу использовать для преобразования нескольких похожих фреймов данных в длинную форму.Я написал базовую функцию, которая успешно преобразуется в длинную форму, но я также хочу, чтобы функция назвала столбец «значение», и это то, где у меня возникают трудности.
Я некоторое время искал в интернете, но так как сборка сама по себе является функцией, каждый поиск, который я выполняю с использованием какого-либо варианта «написать функцию ...» и «собрать», просто приводит меня на страницы, показывающие менякак пользоваться функцией собирать в тидыр.Я знаю, как использовать собирать.Я хочу использовать «сбор» в отдельной функции.
Вот пример кода:
df <- data.frame(Country = c("Afghanistan", "Angola", "Albania"),
Indicator = "emissions",
'1960' = rnorm(3, mean = 0.5, sd =1),
'1961' = rnorm(3, mean = 0.5, sd =1),
'1962' = rnorm(3, mean = 0.5, sd =1))
colnames(df) <- c("Country", "Indicator", "1960", "1961", "1962")
Да, я намеренно меняю названия последних трех столбцов на годы, но на тип данных.Данные, которые я использую (из банка данных Всемирного банка), приходят вот так.
Вот функция:
convert_to_longform <- function(df_name1, value_name1, year1, year2) {
gather(df_name1, key = Year, value = value_name1, c(year1:year2))
}
df_lf <- convert_to_longform(df, emissions, "1960", "1962")
Так что эта функция работает, но, как вы видите, имя столбца для столбца значения становится «value_name1», когда я хочу, чтобы имя столбца было «выбросы».Есть ли способ установить имя столбца значения с помощью команды "собирать" внутри отдельной функции?
Мой ожидаемый результат - это длинный фрейм данных, в котором столбцом значения является «эмиссия» или какая-то другая символьная строка, которую я определяю, а не имя-значения1.